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

Project1

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

[已经解决] 使用了装备显示增强与成就脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2012-12-13
帖子
30
跳转到指定楼层
1
发表于 2012-12-21 17:02:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 KyoCheng 于 2012-12-22 15:40 编辑

用了装备显示增强以后脚本将说明的框给去掉了,导致成就脚本只能看到名字,看不到说明了,能修改吗?
如果可以的话就只改成 只有在装备界面才去掉说明窗口,或者让成就介绍窗口也像装备窗口那样显示出来,再或者成就界面能显示介绍窗口
RUBY 代码复制
  1. #encoding:utf-8
  2.  
  3. #==============================================================================
  4.  
  5. # ■ 装备说明增强
  6.  
  7. #------------------------------------------------------------------------------
  8.  
  9. #  修改了说明窗口,增强了装备的说明 作者:wyongcan  发布于66RPG   转载请注明
  10.  
  11. #==============================================================================
  12.  
  13. module Help
  14.  
  15.   CODE ={
  16.  
  17.     11 => "属性抗性",
  18.  
  19.     12 => "弱化抗性",
  20.  
  21.     13 => "状态抗性",
  22.  
  23.     14 => "状态免疫",
  24.  
  25.     21 => "普通能力",
  26.  
  27.     22 => "添加能力",
  28.  
  29.     23 => "特殊能力",
  30.  
  31.     31 => "攻击附带属性",
  32.  
  33.     32 => "攻击附带状态",
  34.  
  35.     33 => "修正攻击速度",
  36.  
  37.     34 => "添加攻击次数",
  38.  
  39.     41 => "添加技能类型",
  40.  
  41.     42 => "禁用技能类型",
  42.  
  43.     43 => "添加技能",
  44.  
  45.     44 => "禁用技能",
  46.  
  47.     51 => "可装备武器类型",
  48.  
  49.     52 => "可装备护甲类型",
  50.  
  51.     53 => "固定装备",
  52.  
  53.     54 => "禁用装备",
  54.  
  55.     55 => "装备风格",
  56.  
  57.     61 => "添加行动次数",
  58.  
  59.     62 => "特殊标志",
  60.  
  61.     63 => "消失效果",
  62.  
  63.     64 => "队伍能力"}
  64.  
  65.   #特殊标志
  66.  
  67.   FLAG ={
  68.  
  69.                 0 => "自动战斗",
  70.  
  71.                 1 => "擅长防御",
  72.  
  73.                 2 => "保护弱者",
  74.  
  75.                 3 => "特技专注"}
  76.  
  77.   #普通能力
  78.  
  79.         PARAM ={
  80.  
  81.                 0 => "最大HP",
  82.  
  83.                 1 => "最大MP",
  84.  
  85.                 2 => "物理攻击",
  86.  
  87.                 3 => "物理防御",
  88.  
  89.                 4 => "精神",
  90.  
  91.                 5 => "回复",
  92.  
  93.                 6 => "敏 捷 值",
  94.  
  95.                 7 => "幸 运 值"}
  96.  
  97.   #添加能力
  98.  
  99.         XPARAM ={
  100.  
  101.                 0 => "物理命中几率:",
  102.  
  103.                 1 => "物理闪避几率:",
  104.  
  105.                 2 => "必杀几率:",
  106.  
  107.                 3 => "必杀闪避几率:",
  108.  
  109.                 4 => "魔法闪避几率:",
  110.  
  111.                 5 => "魔法反射几率:",
  112.  
  113.                 6 => "物理反击几率:",
  114.  
  115.                 7 => "体力值再生速度:",
  116.  
  117.                 8 => "魔力值再生速度:",
  118.  
  119.                 9 => "特技值再生速度:"}
  120.  
  121.   #特殊能力
  122.  
  123.         SPARAM ={
  124.  
  125.                 0 => "受到攻击的几率",
  126.  
  127.                 1 => "防御效果比率",
  128.  
  129.                 2 => "恢复效果比率",
  130.  
  131.                 3 => "药理知识",
  132.  
  133.                 4 => "MP消费率",
  134.  
  135.                 5 => "TP消耗率",
  136.  
  137.                 6 => "物理伤害加成",
  138.  
  139.                 7 => "魔法伤害加成",
  140.  
  141.                 8 => "地形伤害加成",
  142.  
  143.                 9 => "经验获得加成"}
  144.  
  145. #~   #效果范围
  146.  
  147. #~         SCOPE ={
  148.  
  149. #~                 0 => "特殊",
  150.  
  151. #~                 1 => "单个敌人",
  152.  
  153. #~                 2 => "全体敌人" ,
  154.  
  155. #~                 3 => "一个随机敌人",
  156.  
  157. #~                 4 => "两个随机敌人",
  158.  
  159. #~                 5 => "三个随机敌人",
  160.  
  161. #~                 6 => "四个随机敌人",
  162.  
  163. #~                 7 => "单个队友",
  164.  
  165. #~                 8 => "全体队友",
  166.  
  167. #~                 9 => "单个队友(无法战斗)",
  168.  
  169. #~                 10 => "全体队友(无法战斗)",
  170.  
  171. #~                 11 => "使用者"}
  172.  
  173.         @队伍能力 ={
  174.  
  175.                 0 => "遇敌几率减半",
  176.  
  177.                 1 => "随机遇敌无效",
  178.  
  179.                 2 => "敌人偷袭无效",
  180.  
  181.                 3 => "先制攻击几率上升",
  182.  
  183.                 4 => "获得金钱数量双倍",
  184.  
  185.                 5 => "物品掉落几率双倍"}
  186.  
  187.   def self.ready
  188.  
  189.     @状态 = {}
  190.  
  191.     @武器类型 = {}
  192.  
  193.     @防具类型 = {}
  194.  
  195.     @属性 = {}
  196.  
  197.     $data_states.each{|x| @状态[x.id] = x.name if x != nil}
  198.  
  199.     elements = $data_system.elements
  200.  
  201.     weapon_types = $data_system.weapon_types
  202.  
  203.     armor_types = $data_system.armor_types
  204.  
  205.     elements.each_with_index{|x,y| @属性[y] = x if x != ""}
  206.  
  207.     weapon_types.each_with_index{|x,y| @武器类型[y] = x if x != ""}
  208.  
  209.     armor_types.each_with_index{|x,y| @防具类型[y] = x if x != ""}
  210.  
  211.   end
  212.  
  213.   def self.getequiphelp(equip)
  214.  
  215.     help = ""
  216.  
  217.     param = []
  218.  
  219.     equip.params.each_with_index{|x,y| param.push([PARAM[y],x])}
  220.  
  221.     param = param.select{|x| x[1] != 0}
  222.  
  223.     param.each{|x| help += x[0] + ":" + x[1].to_s + "\n"}
  224.  
  225.     features = equip.features
  226.  
  227.     features.select{|x| x.code == 55}.each{|x| help += CODE[x.code] + ":双持武器" + "\n"}
  228.  
  229.     features.select{|x| x.code == 11}.each{|x| help += CODE[x.code] + ":" + @属性[x.data_id] + "*" + x.value.to_s + "\n"}
  230.  
  231.     features.select{|x| x.code == 12}.each{|x| help += CODE[x.code] + ":" + PARAM[x.data_id] + "*" + x.value.to_s + "\n"}
  232.  
  233.     features.select{|x| x.code == 13}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "*" + x.value.to_s + "\n"}
  234.  
  235.     features.select{|x| x.code == 14}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "\n"}
  236.  
  237.     features.select{|x| x.code == 31}.each{|x| help += CODE[x.code] + ":" + @属性[x.data_id] + "\n"}
  238.  
  239.     features.select{|x| x.code == 32}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "+" + x.value.to_s + "\n"}
  240.  
  241.     features.select{|x| x.code == 33}.each{|x| help += CODE[x.code] + ":" + x.value.to_s + "\n"}
  242.  
  243.     features.select{|x| x.code == 34}.each{|x| help += CODE[x.code] + ":" + x.value.to_s + "\n"}
  244.  
  245.     features.select{|x| x.code == 41}.each{|x| help += CODE[x.code] + ":" + (x.data_id == 1 ? "特技" : "魔法")  + "\n"}
  246.  
  247.     features.select{|x| x.code == 42}.each{|x| help += CODE[x.code] + ":" + (x.data_id == 1 ? "特技" : "魔法")  + "\n"}
  248.  
  249.     features.select{|x| x.code == 43}.each{|x| help += CODE[x.code] + ":" + $data_skills[x.data_id].name  + "\n"}
  250.  
  251.     features.select{|x| x.code == 44}.each{|x| help += CODE[x.code] + ":" + $data_skills[x.data_id].name  + "\n"}
  252.  
  253.     features.select{|x| x.code == 51}.each{|x| help += CODE[x.code] + ":" + @武器类型[x.data_id]  + "\n"}
  254.  
  255.     features.select{|x| x.code == 52}.each{|x| help += CODE[x.code] + ":" + @防具类型[x.data_id]  + "\n"}
  256.  
  257.     features.select{|x| x.code == 61}.each{|x| help += CODE[x.code] + ":" + x.value.to_s  + "\n"}
  258.  
  259.     features.select{|x| x.code == 62}.each{|x| help += CODE[x.code] + ":" + FLAG[x.data_id]  + "\n"}
  260.  
  261.     features.select{|x| x.code == 64}.each{|x| help += CODE[x.code] + ":" + @队伍能力[x.data_id]  + "\n"}
  262.  
  263.     featuresparam = []
  264.  
  265.     featuresparam.push features.select{|x| x.code == 21}
  266.  
  267.     featuresparam.push features.select{|x| x.code == 22}
  268.  
  269.     featuresparam.push features.select{|x| x.code == 23}
  270.  
  271.     featuresparam[0].each{|x| help += PARAM[x.data_id] + "*" + x.value.to_s + "\n"}
  272.  
  273.     featuresparam[1].each{|x| help += XPARAM[x.data_id] + x.value.to_s + "\n"}
  274.  
  275.     featuresparam[2].each{|x| help += SPARAM[x.data_id] + "*" + x.value.to_s + "\n"}
  276.  
  277.     help
  278.  
  279.   end
  280.  
  281.   def self.getline(text,maxtext)
  282.  
  283.     xtext = []
  284.  
  285.     line = 0
  286.  
  287.     text.each_line{|x| xtext.push x.sub(/\n/){}}
  288.  
  289.     xtext.each{|x| x.size % maxtext != 0 ? line += x.size / maxtext + 1 : line += x.size / maxtext}
  290.  
  291.     line
  292.  
  293.   end
  294.  
  295. end
  296.  
  297. #==============================================================================
  298.  
  299. # ■ Window_Help
  300.  
  301. #------------------------------------------------------------------------------
  302.  
  303. #  显示特技和物品等的说明、以及角色状态的窗口
  304.  
  305. #==============================================================================
  306.  
  307.  
  308. class Window_Help < Window_Base
  309.  
  310.   #--------------------------------------------------------------------------
  311.  
  312.   # ● 初始化对象
  313.  
  314.   #--------------------------------------------------------------------------
  315.  
  316.   def initialize(line_number = 0)
  317.  
  318.     super(0, 0, 210, fitting_height(line_number))
  319.  
  320.     self.z = 150
  321.  
  322.     contents.font.size = 18
  323.  
  324.     hide
  325.  
  326.   end
  327.  
  328.   #--------------------------------------------------------------------------
  329.  
  330.   # ● 设置内容
  331.  
  332.   #--------------------------------------------------------------------------
  333.  
  334.   def set_text(text)
  335.  
  336.     if text != @text
  337.  
  338.       @text = text
  339.  
  340.       refresh
  341.  
  342.     end
  343.  
  344.   end
  345.  
  346.   #--------------------------------------------------------------------------
  347.  
  348.   # ● 清除
  349.  
  350.   #--------------------------------------------------------------------------
  351.  
  352.   def clear
  353.  
  354.     set_text("")
  355.  
  356.   end
  357.  
  358.   #--------------------------------------------------------------------------
  359.  
  360.   # ● 更新帮助位置
  361.  
  362.   #--------------------------------------------------------------------------
  363.  
  364.   def uppos(index,rect,window)
  365.  
  366.     self.height = fitting_height2(Help.getline(@xtext,13))
  367.  
  368.     create_contents
  369.  
  370.     contents.font.size = 18
  371.  
  372.     rect.x -= window.ox
  373.  
  374.     rect.y -= window.oy
  375.  
  376.     ax = rect.x + rect.width + 10
  377.  
  378.     ax = rect.x - self.width + 10 if ax + self.width > window.width + 10
  379.  
  380.     ax += window.x
  381.  
  382.     ax = 0 if ax < 0
  383.  
  384.     ay = rect.y + rect.height
  385.  
  386.     ay = rect.y - self.height if ay + self.height > window.height
  387.  
  388.     ay += window.y
  389.  
  390.     ay = 0 if ay < 0
  391.  
  392.     self.x = ax
  393.  
  394.     self.y = ay
  395.  
  396.     set_text(@xtext)
  397.  
  398.     show
  399.  
  400.   end
  401.  
  402.   #--------------------------------------------------------------------------
  403.  
  404.   # ● 设置物品
  405.  
  406.   #     item : 技能、物品等
  407.  
  408.   #--------------------------------------------------------------------------
  409.  
  410.   def set_item(item)
  411.  
  412.     if item == nil
  413.  
  414.       set_text("")
  415.  
  416.       return
  417.  
  418.     end
  419.  
  420.     @xtext = ""
  421.  
  422.     @xtext = "名称:" + item.name + "\n"
  423.  
  424.     @xtext += "介绍:" + item.description + "\n"
  425.  
  426.     @xtext += "价格:" + item.price.to_s + "\n" if item.is_a?(RPG::EquipItem) || item.is_a?(RPG::Item)
  427.  
  428.     @xtext += Help.getequiphelp(item) if item.is_a?(RPG::EquipItem)
  429.  
  430.     @xtext = @xtext[0,@text.size - 2] if @xtext[@xtext.size - 2,2] == "\n"
  431.  
  432.   end
  433.  
  434.   #--------------------------------------------------------------------------
  435.  
  436.   # ● 刷新
  437.  
  438.   #--------------------------------------------------------------------------
  439.  
  440.   def refresh
  441.  
  442.     contents.clear
  443.  
  444.     hide if @text == ""
  445.  
  446.     draw_text_ex(4, 0, @text,width,40,false)
  447.  
  448.   end
  449.  
  450. end
  451.  
  452.  
  453. class Window_Base < Window
  454.  
  455.   #--------------------------------------------------------------------------
  456.  
  457.   # ● 计算窗口显示指定行数时的应用高度2*************************
  458.  
  459.   #--------------------------------------------------------------------------
  460.  
  461.   def fitting_height2(line_number)
  462.  
  463.     line_number * contents.font.size + standard_padding * 2
  464.  
  465.   end
  466.  
  467. #~ draw_text_ex的增强,使其可以自动换行  原作者:叶子 修改:wyongcan
  468.  
  469.   #--------------------------------------------------------------------------
  470.  
  471.   # ● 绘制带有控制符的文本内容
  472.  
  473.   #   如果传递了width参数的话,会自动换行
  474.  
  475.   #--------------------------------------------------------------------------
  476.  
  477.   def draw_text_ex(x, y, text, width = nil,textwidth = nil,normalfont = true)
  478.  
  479.     reset_font_settings if normalfont == true
  480.  
  481.     text = convert_escape_characters(text)
  482.  
  483.     pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
  484.  
  485.     if width != nil
  486.  
  487.       pos[:height] = contents.font.size
  488.  
  489.       pos[:width] = width
  490.  
  491.       pos[:textwidth] = textwidth
  492.  
  493.     end
  494.  
  495.     process_character(text.slice!(0, 1), text, pos) until text.empty?
  496.  
  497.   end
  498.  
  499.   #--------------------------------------------------------------------------
  500.  
  501.   # ● 文字的处理
  502.  
  503.   #     c    : 文字
  504.  
  505.   #     text : 绘制处理中的字符串缓存(字符串可能会被修改)
  506.  
  507.   #     pos  : 绘制位置 {:x, :y, :new_x, :height}
  508.  
  509.   #--------------------------------------------------------------------------
  510.  
  511.   def process_character(c, text, pos)
  512.  
  513.     case c
  514.  
  515.     when "\r"   # 回车
  516.  
  517.       return
  518.  
  519.     when "\n"   # 换行
  520.  
  521.       process_new_line(text, pos)
  522.  
  523.     when "\f"   # 翻页
  524.  
  525.       process_new_page(text, pos)
  526.  
  527.     when "\e"   # 控制符
  528.  
  529.       process_escape_character(obtain_escape_code(text), text, pos)
  530.  
  531.     else        # 普通文字
  532.  
  533.       pos[:textwidth] == nil ? text_width = text_size(c).width : text_width = pos[:textwidth]
  534.  
  535.       if pos[:width] != nil && pos[:x] - pos[:new_x] + text_width > pos[:width]
  536.  
  537.         process_new_line(text, pos)
  538.  
  539.       end
  540.  
  541.       process_normal_character(c, pos)
  542.  
  543.     end
  544.  
  545.   end
  546.  
  547. end
  548.  
  549.  
  550. class Window_ItemList < Window_Selectable
  551.  
  552.   #--------------------------------------------------------------------------
  553.  
  554.   # ● 更新帮助内容
  555.  
  556.   #--------------------------------------------------------------------------
  557.  
  558.   def update_help
  559.  
  560.     @help_window.set_item(item)
  561.  
  562.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  563.   end
  564.  
  565. end
  566.  
  567.  
  568. class Window_SkillList < Window_Selectable
  569.  
  570.   #--------------------------------------------------------------------------
  571.  
  572.   # ● 更新帮助内容
  573.  
  574.   #--------------------------------------------------------------------------
  575.  
  576.   def update_help
  577.  
  578.     @help_window.set_item(item)
  579.  
  580.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  581.   end
  582.  
  583. end
  584.  
  585.  
  586. class Window_ShopBuy < Window_Selectable
  587.  
  588.   #--------------------------------------------------------------------------
  589.  
  590.   # ● 更新帮助内容
  591.  
  592.   #--------------------------------------------------------------------------
  593.  
  594.   def update_help
  595.  
  596.     @help_window.set_item(item) if @help_window
  597.  
  598.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window
  599.  
  600.     @status_window.item = item if @status_window
  601.  
  602.   end
  603.  
  604. end
  605.  
  606.  
  607. class Window_EquipSlot < Window_Selectable
  608.  
  609.   #--------------------------------------------------------------------------
  610.  
  611.   # ● 更新帮助内容
  612.  
  613.   #--------------------------------------------------------------------------
  614.  
  615.   def update_help
  616.  
  617.     super
  618.  
  619.     @help_window.set_item(item) if @help_window
  620.  
  621.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window
  622.  
  623.     @status_window.set_temp_actor(nil) if @status_window
  624.  
  625.   end
  626.  
  627. end
  628.  
  629.  
  630. class Scene_Shop < Scene_MenuBase
  631.  
  632.         alias on_sell_ok_old on_sell_ok
  633.  
  634.         def on_sell_ok
  635.  
  636.                 on_sell_ok_old
  637.  
  638.                 @help_window.hide
  639.  
  640.         end
  641.  
  642.         alias on_buy_ok_old on_buy_ok
  643.  
  644.         def on_buy_ok
  645.  
  646.                 on_buy_ok_old
  647.  
  648.                 @help_window.hide
  649.  
  650.         end
  651.  
  652.         alias on_number_ok_old on_number_ok
  653.  
  654.         def on_number_ok
  655.  
  656.                 on_number_ok_old
  657.  
  658.     @help_window.refresh
  659.  
  660.                 @help_window.show
  661.  
  662.         end
  663.  
  664.         alias on_number_cancel_old on_number_cancel
  665.  
  666.         def on_number_cancel
  667.  
  668.                 on_number_cancel_old
  669.  
  670.     @help_window.refresh
  671.  
  672.                 @help_window.show
  673.  
  674.         end
  675.  
  676. end
  677.  
  678.  
  679. class Scene_Title < Scene_Base
  680.  
  681.   alias start_old start
  682.  
  683.   def start
  684.  
  685.     start_old
  686.  
  687.     Help.ready
  688.  
  689.   end
  690.  
  691. end
  692. class Window_Base < Window
  693.  
  694.         alias old_process_new_line process_new_line
  695.  
  696.         def process_new_line(text, pos)
  697.  
  698.     old_process_new_line(text, pos)
  699.  
  700.                 pos[:height] = contents.font.size if pos[:width] != nil
  701.  
  702.         end
  703.  
  704. end
  705.  
  706. class Scene_ItemBase < Scene_MenuBase
  707.  
  708.         alias old_on_actor_cancel on_actor_cancel
  709.  
  710.   def on_actor_cancel
  711.  
  712.     old_on_actor_cancel
  713.  
  714.         @help_window.refresh
  715.  
  716.   end
  717.  
  718.         alias old_on_actor_ok on_actor_ok
  719.  
  720.   def on_actor_ok
  721.  
  722.     old_on_actor_ok
  723.  
  724.         @help_window.refresh
  725.  
  726.   end
  727.  
  728. end



RUBY 代码复制
  1. #==============================================================================
  2. # ★ RGSS3_荣誉系统 Ver1.00
  3. #==============================================================================
  4. #尼玛啊!!!我讨厌日文啊
  5. #使用方法:
  6. #         gain_medal(0)
  7. #==============================================================================
  8. # □ 设定项目
  9. #==============================================================================
  10. module TMMEDAL
  11.   COMMAND_MEDAL = "成就"     # 菜单中的名字
  12.  
  13.   # 一个荣誉也没有时隐藏菜单(true隐藏;false不隐藏)
  14.   HIDE_COMMAND = false
  15.  
  16.   # 荣誉获得时的效果音
  17.   SE_GAIN_MEDAL = RPG::SE.new("Powerup", 90, 140)
  18.  
  19.   # 荣誉名称及简介的设置
  20.   #例如:MEDAL_DATA[0] = ["名字", 187, "简介"]
  21.   MEDAL_DATA = {}
  22.   MEDAL_DATA[0] = ["名字?", 187, "简介?"]
  23.   MEDAL_DATA[1] = ["【启程】", 188, "与诺亚镇告别。"]
  24.  
  25. end
  26.  
  27. #==============================================================================
  28. # ■ Game_Party
  29. #==============================================================================
  30. class Game_Party
  31.   #--------------------------------------------------------------------------
  32.   # ● 公開インスタンス変数
  33.   #--------------------------------------------------------------------------
  34.   attr_reader   :medals                   # 獲得済みメダル
  35.   attr_reader   :new_medals               # 新規獲得メダル
  36.   attr_accessor :medal_info_count         # メダル情報表示カウント
  37.   attr_accessor :medal_info_opacity       # メダル情報表示不透明度
  38.   #--------------------------------------------------------------------------
  39.   # ● オブジェクト初期化
  40.   #--------------------------------------------------------------------------
  41.   alias tmmedal_game_party_initialize initialize
  42.   def initialize
  43.     tmmedal_game_party_initialize
  44.     @medals = []
  45.     @new_medals = []
  46.     @medal_info_count = 0
  47.     @medal_info_opacity = 0
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ○ メダルの獲得
  51.   #--------------------------------------------------------------------------
  52.   def gain_medal(medal_id)
  53.     return if @medals.any? {|medal| medal[0] == medal_id }
  54.     t = Time.now.strftime(" (%Y/%m/%d %H:%M)")
  55.     @medals.push([medal_id, t])
  56.     @new_medals.push([medal_id, t])
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ○ 獲得メダル情報の消去
  60.   #--------------------------------------------------------------------------
  61.   def delete_new_medal
  62.     @new_medals.shift
  63.   end
  64. end
  65.  
  66. #==============================================================================
  67. # ■ Game_Interpreter
  68. #==============================================================================
  69. class Game_Interpreter
  70.   #--------------------------------------------------------------------------
  71.   # ○ メダルの獲得
  72.   #--------------------------------------------------------------------------
  73.   def gain_medal(medal_id)
  74.     $game_party.gain_medal(medal_id)
  75.   end
  76. end
  77.  
  78. #==============================================================================
  79. # ■ Window_MenuCommand
  80. #==============================================================================
  81. class Window_MenuCommand
  82.   #--------------------------------------------------------------------------
  83.   # ● 独自コマンドの追加用
  84.   #--------------------------------------------------------------------------
  85.   alias tmmedal_window_menucommand_add_original_commands add_original_commands
  86.   def add_original_commands
  87.     tmmedal_window_menucommand_add_original_commands
  88.     unless TMMEDAL::HIDE_COMMAND && !medal_enabled
  89.       add_command(TMMEDAL::COMMAND_MEDAL, :medal, medal_enabled)
  90.     end
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ○ メダルの有効状態を取得
  94.   #--------------------------------------------------------------------------
  95.   def medal_enabled
  96.     !$game_party.medals.empty?
  97.   end
  98. end
  99.  
  100. #==============================================================================
  101. # □ Window_MedalInfo
  102. #==============================================================================
  103. class Window_MedalInfo < Window_Base
  104.   #--------------------------------------------------------------------------
  105.   # ● オブジェクト初期化
  106.   #--------------------------------------------------------------------------
  107.   def initialize
  108.     super(Graphics.width - window_width, 0, window_width, fitting_height(1))
  109.     self.opacity = 0
  110.     self.contents_opacity = $game_party.medal_info_opacity
  111.     refresh
  112.   end
  113.   #--------------------------------------------------------------------------
  114.   # ● ウィンドウ幅の取得
  115.   #--------------------------------------------------------------------------
  116.   def window_width
  117.     return 240
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● フレーム更新
  121.   #--------------------------------------------------------------------------
  122.   def update
  123.     super
  124.     if $game_party.medal_info_count > 0
  125.       self.contents_opacity += 16
  126.       $game_party.medal_info_count -= 1
  127.       $game_party.delete_new_medal if $game_party.medal_info_count == 0
  128.     else
  129.       self.contents_opacity -= 16
  130.       if self.contents_opacity == 0
  131.         open unless $game_party.new_medals.empty?
  132.       end
  133.     end
  134.     $game_party.medal_info_opacity = self.contents_opacity
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ● ウィンドウを開く
  138.   #--------------------------------------------------------------------------
  139.   def open
  140.     refresh
  141.     TMMEDAL::SE_GAIN_MEDAL.play
  142.     $game_party.medal_info_count = 150
  143.     self.contents_opacity = 0
  144.     self
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ○ リフレッシュ
  148.   #--------------------------------------------------------------------------
  149.   def refresh
  150.     contents.clear
  151.     unless $game_party.new_medals.empty?
  152.       draw_background(contents.rect)
  153.       medal = TMMEDAL::MEDAL_DATA[$game_party.new_medals[0][0]]
  154.       rect = contents.rect.clone
  155.       draw_icon(medal[1], rect.x, rect.y)
  156.       rect.x += 24
  157.       rect.width -= 24
  158.       draw_text(rect, medal[0])
  159.     end
  160.   end
  161.   #--------------------------------------------------------------------------
  162.   # ○ 背景の描画
  163.   #--------------------------------------------------------------------------
  164.   def draw_background(rect)
  165.     temp_rect = rect.clone
  166.     temp_rect.width /= 2
  167.     contents.gradient_fill_rect(temp_rect, back_color2, back_color1)
  168.     temp_rect.x = temp_rect.width
  169.     contents.gradient_fill_rect(temp_rect, back_color1, back_color2)
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   # ○ 背景色 1 の取得
  173.   #--------------------------------------------------------------------------
  174.   def back_color1
  175.     Color.new(0, 0, 0, 192)
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ○ 背景色 2 の取得
  179.   #--------------------------------------------------------------------------
  180.   def back_color2
  181.     Color.new(0, 0, 0, 0)
  182.   end
  183. end
  184.  
  185. #==============================================================================
  186. # □ Window_Medal
  187. #==============================================================================
  188. class Window_Medal < Window_Selectable
  189.   #--------------------------------------------------------------------------
  190.   # ● オブジェクト初期化
  191.   #--------------------------------------------------------------------------
  192.   def initialize(x, y, width, height)
  193.     super
  194.     refresh
  195.     select(0)
  196.     activate
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ● 桁数の取得
  200.   #--------------------------------------------------------------------------
  201.   def col_max
  202.     return 1
  203.   end
  204.   #--------------------------------------------------------------------------
  205.   # ● 項目数の取得
  206.   #--------------------------------------------------------------------------
  207.   def item_max
  208.     @data ? @data.size : 1
  209.   end
  210.   #--------------------------------------------------------------------------
  211.   # ● アイテムの取得
  212.   #--------------------------------------------------------------------------
  213.   def item
  214.     @data && index >= 0 ? @data[index] : nil
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● アイテムリストの作成
  218.   #--------------------------------------------------------------------------
  219.   def make_item_list
  220.     @data = $game_party.medals
  221.   end
  222.   #--------------------------------------------------------------------------
  223.   # ● 項目の描画
  224.   #--------------------------------------------------------------------------
  225.   def draw_item(index)
  226.     item = @data[index]
  227.     medal = TMMEDAL::MEDAL_DATA[item[0]]
  228.     rect = item_rect(index)
  229.     draw_icon(medal[1], rect.x, rect.y)
  230.     rect.x += 24
  231.     rect.width -= 216
  232.     draw_text(rect, medal[0])
  233.     rect.x = contents.width - 192
  234.     rect.width = 192
  235.     draw_text(rect, item[1], 2)
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● ヘルプテキスト更新
  239.   #--------------------------------------------------------------------------
  240.   def update_help
  241.     if item
  242.       medal = TMMEDAL::MEDAL_DATA[item[0]]
  243.       text = medal[2]
  244.       @help_window.set_text(text)
  245.     end
  246.   end
  247.   #--------------------------------------------------------------------------
  248.   # ● リフレッシュ
  249.   #--------------------------------------------------------------------------
  250.   def refresh
  251.     make_item_list
  252.     create_contents
  253.     draw_all_items
  254.   end
  255. end
  256.  
  257. #==============================================================================
  258. # ■ Scene_Map
  259. #==============================================================================
  260. class Scene_Map
  261.   #--------------------------------------------------------------------------
  262.   # ● 全ウィンドウの作成
  263.   #--------------------------------------------------------------------------
  264.   alias tmmedal_scene_map_create_all_windows create_all_windows
  265.   def create_all_windows
  266.     tmmedal_scene_map_create_all_windows
  267.     create_medal_window
  268.   end
  269.   #--------------------------------------------------------------------------
  270.   # ○ メダルウィンドウの作成
  271.   #--------------------------------------------------------------------------
  272.   def create_medal_window
  273.     @medal_window = Window_MedalInfo.new
  274.   end
  275. end
  276.  
  277. #==============================================================================
  278. # ■ Scene_Menu
  279. #==============================================================================
  280. class Scene_Menu
  281.   #--------------------------------------------------------------------------
  282.   # ● コマンドウィンドウの作成
  283.   #--------------------------------------------------------------------------
  284.   alias tmmedal_scene_menu_create_command_window create_command_window
  285.   def create_command_window
  286.     tmmedal_scene_menu_create_command_window
  287.     @command_window.set_handler(:medal, method(:command_medal))
  288.   end
  289.   #--------------------------------------------------------------------------
  290.   # ○ コマンド[メダル]
  291.   #--------------------------------------------------------------------------
  292.   def command_medal
  293.     SceneManager.call(Scene_Medal)
  294.   end
  295. end
  296.  
  297. #==============================================================================
  298. # □ Scene_Medal
  299. #==============================================================================
  300. class Scene_Medal < Scene_MenuBase
  301.   #--------------------------------------------------------------------------
  302.   # ● 開始処理
  303.   #--------------------------------------------------------------------------
  304.   def start
  305.     super
  306.     create_help_window
  307.     create_item_window
  308.   end
  309.   #--------------------------------------------------------------------------
  310.   # ○ アイテムウィンドウの作成
  311.   #--------------------------------------------------------------------------
  312.   def create_item_window
  313.     wy = @help_window.height
  314.     wh = Graphics.height - wy
  315.     @item_window = Window_Medal.new(0, wy, Graphics.width, wh)
  316.     @item_window.viewport = @viewport
  317.     @item_window.help_window = @help_window
  318.     @item_window.set_handler(:cancel, method(:return_scene))
  319.   end
  320. end

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2012-12-13
帖子
30
2
 楼主| 发表于 2012-12-22 14:24:56 | 只看该作者
上个图,你们看没介绍了……
请问谁能帮我再在成就界面里增添个介绍……类似装备显示增强的那种窗口就可以了,或者原来的那种样子的,但是不要引起装备显示增强脚本冲突。

未命名.jpg (74.69 KB, 下载次数: 18)

未命名.jpg
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
465
在线时间
915 小时
注册时间
2011-5-11
帖子
438
3
发表于 2012-12-22 15:10:53 | 只看该作者
替换成就中 Scene_Medal
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_Help
  4. #------------------------------------------------------------------------------
  5. #  顯示特技和物品等的說明、以及角色狀態的視窗
  6. #==============================================================================

  7. class Window_HelpA < Window_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化物件
  10.   #--------------------------------------------------------------------------
  11.   def initialize(line_number = 2)
  12.     super(0, 0, Graphics.width, fitting_height(line_number))
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 設定內容
  16.   #--------------------------------------------------------------------------
  17.   def set_text(text)
  18.     if text != @text
  19.       @text = text
  20.       refresh
  21.     end
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 清除
  25.   #--------------------------------------------------------------------------
  26.   def clear
  27.     set_text("")
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 設定物品
  31.   #     item : 技能、物品等
  32.   #--------------------------------------------------------------------------
  33.   def set_item(item)
  34.     set_text(item ? item.description : "")
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 重新整理
  38.   #--------------------------------------------------------------------------
  39.   def refresh
  40.     contents.clear
  41.     draw_text_ex(4, 0, @text)
  42.   end
  43. end

  44. #==============================================================================
  45. # □ Scene_Medal
  46. #==============================================================================
  47. class Scene_Medal < Scene_MenuBase
  48.   #--------------------------------------------------------------------------
  49.   # ● 開始処理
  50.   #--------------------------------------------------------------------------
  51.   def start
  52.     super
  53.     create_help_window
  54.     create_item_window
  55.   end
  56.   def create_help_window
  57.     @help_window = Window_HelpA.new
  58.     @help_window.viewport = @viewport
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ○ アイテムウィンドウの作成
  62.   #--------------------------------------------------------------------------
  63.   def create_item_window
  64.     wy = @help_window.height
  65.     wh = Graphics.height - wy
  66.     @item_window = Window_Medal.new(0, wy, Graphics.width, wh)
  67.     @item_window.viewport = @viewport
  68.     @item_window.help_window = @help_window
  69.     @item_window.set_handler(:cancel, method(:return_scene))
  70.   end
  71. end
复制代码

点评

成就介绍显示正常了,就是装备增强一查看就跳出  发表于 2012-12-22 15:25
http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2012-12-13
帖子
30
4
 楼主| 发表于 2012-12-22 15:19:12 | 只看该作者
345912390 发表于 2012-12-22 15:10
替换成就中 Scene_Medal

其他界面看东西是正常的增强窗口,但是每当调到装备查看里就直接跳出

QQ截图20121222151551.jpg (16.23 KB, 下载次数: 16)

QQ截图20121222151551.jpg

QQ截图20121222151811.jpg (136.27 KB, 下载次数: 18)

QQ截图20121222151811.jpg
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
465
在线时间
915 小时
注册时间
2011-5-11
帖子
438
5
发表于 2012-12-22 15:36:05 | 只看该作者
KyoCheng 发表于 2012-12-22 15:19
其他界面看东西是正常的增强窗口,但是每当调到装备查看里就直接跳出

那个是另外的问题
我测试没出错http://pan.baidu.com/share/link?shareid=191765&uk=3843192968&third=0

点评

感谢大大!其他问题的话我再自己查找好了!显示问题已解决!  发表于 2012-12-22 15:39
http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2012-12-13
帖子
30
6
 楼主| 发表于 2012-12-22 16:01:10 | 只看该作者
另外补一句,已经找到问题所在,如果有人使用装备显示增强和成就脚本使用以上“345912390”大大的方法即可,后来我显示出的错误是网页跳转脚本的冲突
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-15 21:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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