Project1

标题: 各位来帮一下忙 游戏的BUG [打印本页]

作者: z540959083    时间: 2011-2-8 14:01
标题: 各位来帮一下忙 游戏的BUG
我的游戏初期,我已经把 剧本 ……系统……素材……准备好了     就是还有点BUG   如下

工程
[attach]45709[/attach]

新建文件夹.rar

3.5 MB, 下载次数: 29


作者: 忧雪の伤    时间: 2011-2-8 14:14
修改y值。
作者: z540959083    时间: 2011-2-8 14:21
帮我改一下  我脚本盲
作者: 黯光無影    时间: 2011-2-8 16:00
本帖最后由 黯光無影 于 2011-2-8 16:21 编辑

是那个帮助窗口的y值有差,我改了一下,顺便标记了修改地方有需要自己修改
  1. #==============================================================================
  2. # ■ Window_Help
  3. #------------------------------------------------------------------------------
  4. #  特技及物品的说明、角色的状态显示的窗口。
  5. #   若要更改属性,请搜索element_set={1=>"火",2=>"冰",3=>"光",4=>"暗"} 改成对应属性即可
  6. #==============================================================================

  7. UNSHOW_STATE=[1,2,3,4,5]#记录不显示的状态数组
  8. UNSHOW_ELEMENT=[2,3,4,5]#记录不显示的属性数组

  9. class Window_Help < Window_Base
  10.   #--------------------------------------------------------------------------
  11.   # ● 初始化对像
  12.   #--------------------------------------------------------------------------
  13.   def initialize
  14.     super(0,0, 180, 430)
  15.     self.windowskin = RPG::Cache.windowskin("window_item")
  16.     self.z=150
  17.     self.visible = false
  18.     self.contents = Bitmap.new(width - 32, height - 32)
  19.     description=""
  20.     @item=nil
  21.     @armor=nil
  22.     @weapon=nil
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 设置文本
  26.   #     text  : 窗口显示的字符串
  27.   #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
  28.   #--------------------------------------------------------------------------
  29.   def set_text(data, align=nil)
  30.     # 如果文本和对齐方式的至少一方与上次的不同
  31.     if align != nil
  32.         # 再描绘窗口和文本
  33.       self.width = 640
  34.       self.height = 64
  35.       self.x=0
  36.       self.y=0
  37.       self.contents = Bitmap.new(width - 32, height - 32)
  38.       self.contents.clear
  39.       self.contents.font.color = normal_color
  40.       self.contents.font.size = 20
  41.       self.contents.draw_text(4, 0, self.width - 48, 32, data, align)
  42.       self.visible = true
  43.       return
  44.     end
  45.     if data == nil
  46.       self.visible=false
  47.       @data = nil
  48.     end
  49.     if data != nil && @data != data
  50.       @data=data
  51.       self.visible=true
  52.     ############################  这里
  53.       self.width = 180 #宽
  54.       self.height = 66 #高
  55.       self.x=220     #横坐标
  56.       self.y=0        #纵坐标
  57.       #############################
  58.       self.contents = Bitmap.new(width - 32, height - 32)
  59.       case @data
  60.       when RPG::Item
  61.         set_item_text(@data)
  62.       when RPG::Weapon
  63.         set_weapon_text(@data)
  64.       when RPG::Armor
  65.         set_armor_text(@data)
  66.       when RPG::Skill
  67.         set_skill_text(@data)
  68.       end
  69.     else
  70.       return
  71.     end
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● 设置敌人
  75.   #     enemy : 要显示名字和状态的敌人
  76.   #--------------------------------------------------------------------------
  77.   def set_enemy(enemy)
  78.     text = enemy.name
  79.     state_text = make_battler_state_text(enemy, 0, false)
  80.     if state_text != ""
  81.       text += "  " + state_text
  82.     end
  83.     set_text(text, 1)
  84.     @data=nil
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● 设置角色
  88.   #     actor : 要显示状态的角色
  89.   #--------------------------------------------------------------------------
  90.   def set_actor(actor)
  91.     if actor != @actor
  92.         self.width = 640
  93.         self.height = 64
  94.         self.x=0
  95.         self.y=0
  96.         self.contents = Bitmap.new(width - 32, height - 32)
  97.         self.contents.clear
  98.         self.contents.font.size=20
  99.         self.contents.font.color = normal_color
  100.       draw_actor_name(actor, 4, 0)
  101.       draw_actor_state(actor, 140, 0)
  102.       draw_actor_hp(actor, 284, 0)
  103.       draw_actor_sp(actor, 460, 0)
  104.       @actor = actor
  105.       @text = nil
  106.       self.visible = true
  107.     end
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 校正帮助窗口位置
  111.   #--------------------------------------------------------------------------
  112.   def set_pos(x,y,width,oy,index,column_max)
  113.     #光标坐标
  114.     cursor_width = width / column_max - 32
  115.     xx = index % column_max * (cursor_width + 32)
  116.     yy = index / column_max * 32 - oy
  117.     self.x=xx+x+70
  118.     self.y=yy+y+30
  119.     if self.x+self.width>640
  120.       self.x=640-self.width
  121.     end
  122.     if self.y+self.height>480
  123.       self.y=480-self.height
  124.     end  
  125.   end
  126. end


  127. class Window_Help < Window_Base
  128.   #--------------------------------------------------------------------------
  129.   # ● 物品帮助窗口
  130.   #--------------------------------------------------------------------------
  131.   def set_item_text(item)
  132.     @item=item
  133.     description=""
  134.     [email protected]
  135.     x=0
  136.     y=0
  137.        # 取得屬性、附加狀態、解除狀態之副本
  138.    element_set = @item.element_set.clone
  139.    plus_state_set = @item.plus_state_set.clone
  140.    minus_state_set = @item.minus_state_set.clone
  141.    # 過濾不顯示的描述
  142.    element_set -= UNSHOW_ELEMENT
  143.    plus_state_set -= UNSHOW_STATE
  144.    minus_state_set -= UNSHOW_STATE
  145.     height=1     #依要显示的内容确定高
  146.     #由描叙确定高
  147.     height+=description.size/3/10
  148.     if description.size%10!=0
  149.       height+=1
  150.     end
  151.     height+=3  #空行,效果范围,价格
  152.     if @item.recover_hp_rate!=0 #HP 回复率。
  153.       height+=1
  154.     end   
  155.     if @item.recover_hp!=0 #HP 回复量。
  156.       height+=1
  157.     end
  158.     if @item.recover_sp_rate!=0 #SP 回复率。
  159.       height+=1
  160.     end
  161.     if @item.recover_sp!=0 #SP 回复量。
  162.       height+=1
  163.     end
  164.     if @item.parameter_type!=0 #增加能力值
  165.       height+=1
  166.     end      
  167.     if element_set.empty?!=true  #属性。为属性 ID 的数组
  168.       height+=1
  169.     end
  170.     if plus_state_set.empty?!=true  #附加状态。为状态 ID 的数组
  171.       height+=plus_state_set.size  
  172.     end
  173.     if minus_state_set.empty?!=true  #解除状态。为状态 ID 的数组
  174.       height+=minus_state_set.size   
  175.     end     
  176.     self.height=height*15+40+15   
  177.     self.contents = Bitmap.new(self.width - 32,self.height - 32)
  178.     self.contents.clear
  179.     #描绘名字
  180.     [email protected]
  181.     self.contents.font.color =text_color(item.name_color)
  182.     self.contents.font.size=18
  183.     if text!=nil
  184.       self.visible = true
  185.       self.contents.draw_text(0,0, @item.name.size*7, 20, text, 0)
  186.     else
  187.       self.visible = false
  188.     end
  189.     x=0
  190.     y+=1
  191.     text=description
  192.     #描绘描叙
  193.     while ((text = description.slice!(/./m)) != nil)
  194.       self.contents.font.color = text_color(item.item_self_color)
  195.       self.contents.font.size=14
  196.       self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
  197.       x+=1
  198.       if x==10#每行10个字
  199.         x=0
  200.         y+=1      
  201.       end
  202.     end
  203.     #由特技属性确定高
  204.     #效果范围
  205.     scope = {0=>"特殊物品",1=>"敌单体",2=>"敌全体",3=>"己方单体",4=>"己方全体",5=>"己方昏死单体",6=>"己方昏死全体",7=>"使用者"}#HASH表
  206.     text="范围:"+scope[@item.scope]
  207.     x=0
  208.     y+=2  #空一行
  209.     self.contents.font.color = text_color(item.item_xg_color)
  210.     self.contents.font.size=14
  211.     self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  212.     #价格
  213.       x=0
  214.       y+=1
  215.       
  216.       #bitmap = RPG::Cache.icon(item.icon_name)
  217.       #self.contents.blt(24, 32, bitmap, Rect.new(0, 0, 48, 48))
  218.         
  219.       text="价格:"[email protected]_s
  220.       self.contents.font.color = text_color(item.item_q_color)
  221.       self.contents.font.size=14   
  222.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  223.    
  224.     #HP 回复率   
  225.     if @item.recover_hp_rate!=0
  226.       x=0
  227.       y+=1      
  228.       text="回复HP:"[email protected]_hp_rate.to_s+"%"
  229.       self.contents.font.color = text_color(item.item_jhpb_color)
  230.       self.contents.font.size=14   
  231.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)      
  232.     end
  233.     #HP回复量
  234.     if @item.recover_hp!=0
  235.       x=0
  236.       y+=1      
  237.       text="回复HP:"[email protected]_hp.to_s
  238.       self.contents.font.color = text_color(item.item_jhp_color)
  239.       self.contents.font.size=14   
  240.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  241.     end
  242.      #SP 回复率
  243.     if @item.recover_sp_rate!=0
  244.       x=0
  245.       y+=1      
  246.       text="回复SP:"[email protected]_sp_rate.to_s+"%"
  247.       self.contents.font.color = text_color(item.item_jspb_color)
  248.       self.contents.font.size=14   
  249.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  250.     end
  251.     #SP 回复量
  252.     if @item.recover_sp!=0
  253.       x=0
  254.       y+=1      
  255.       text="回复SP:"[email protected]_sp.to_s
  256.       self.contents.font.color = text_color(item.item_jsp_color)
  257.       self.contents.font.size=14   
  258.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  259.     end
  260.     #增加能力值
  261.     if @item.parameter_type!=0
  262.       parameter_type={1=>"MaxHP",2=>"MaxSP",3=>$data_system.words.str,4=>$data_system.words.dex,5=>$data_system.words.agi,6=>$data_system.words.int}
  263.       x=0
  264.       y+=1
  265.       if @item.parameter_points>0
  266.         text="增益:"+parameter_type[@item.parameter_type]+" +"[email protected]_points.to_s
  267.       else
  268.         text="减少:"+parameter_type[@item.parameter_type][email protected]_points.to_s
  269.       end
  270.       self.contents.font.color = text_color(item.item_ultra_color)
  271.       self.contents.font.size=14   
  272.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  273.     end      
  274.    
  275.     #物品属性   
  276.     if element_set.empty?!=true  #属性。为属性 ID 的数组
  277.       text="属性:"
  278.       for i in 0...element_set.size
  279.         text+=$data_system.elements[element_set[i]]+" "
  280.       end
  281.       x=0
  282.       y+=1
  283.       self.contents.font.color = text_color(item.item_sx_color)
  284.       self.contents.font.size=14
  285.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  286.     end
  287.     #附加状态
  288.     if plus_state_set.empty?!=true  #附加状态。为状态 ID 的数组
  289.       text="附加状态:"
  290.       x=0
  291.       y+=1
  292.       self.contents.font.color = text_color(item.item_fstate_color)
  293.       self.contents.font.size=14
  294.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  295.       y-=1
  296.       x+=text.size*5      
  297.       for i in 0...plus_state_set.size
  298.         y+=1
  299.         text=$data_states[plus_state_set[i]].name        
  300.         self.contents.font.color = text_color(item.item_fstate_color)
  301.         self.contents.font.size=14
  302.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  303.       end  
  304.     end
  305.     #解除状态
  306.     if minus_state_set.empty?!=true  #解除状态。为状态 ID 的数组
  307.       text="解除状态:"
  308.       x=0
  309.       y+=1
  310.       self.contents.font.color = text_color(item.item_jstate_color)
  311.       self.contents.font.size=14
  312.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  313.       y-=1
  314.       x+=text.size*5      
  315.       for i in 0...minus_state_set.size
  316.         y+=1
  317.         text=$data_states[minus_state_set[i]].name        
  318.         self.contents.font.color = text_color(item.item_jstate_color)
  319.         self.contents.font.size=14
  320.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  321.       end  
  322.     end     
  323.   end
  324. end

  325. class Window_Help < Window_Base
  326.   #--------------------------------------------------------------------------
  327.   # ● 武器帮助窗口
  328.   #--------------------------------------------------------------------------
  329.   
  330.   def set_weapon_text(weapon)
  331.     @weapon=weapon
  332.     description=""
  333.     [email protected]
  334.    # 取得屬性、附加狀態、解除狀態之副本
  335.    element_set = @weapon.element_set.clone
  336.    plus_state_set = @weapon.plus_state_set.clone
  337.    minus_state_set = @weapon.minus_state_set.clone
  338.    # 過濾不顯示的描述
  339.    element_set -= UNSHOW_ELEMENT
  340.    plus_state_set -= UNSHOW_STATE
  341.    minus_state_set -= UNSHOW_STATE

  342.     x=0
  343.     y=0
  344.     height=1     #依要显示的内容确定高
  345.     #由描叙确定高
  346.     height+=description.size/3/10
  347.     if description.size%10!=0
  348.       height+=1
  349.     end
  350.     height+=4  #2个空行,攻击,价格
  351.     if @weapon.pdef!=0 #物理防御
  352.       height+=1
  353.     end      
  354.     if @weapon.mdef!=0 #魔法防御
  355.       height+=1
  356.     end
  357.     if @weapon.str_plus!=0 #力量
  358.       height+=1
  359.     end
  360.     if @weapon.dex_plus!=0#体质
  361.       height+=1
  362.     end
  363.     if @weapon.agi_plus!=0#敏捷
  364.       height+=1
  365.     end
  366.     if @weapon.int_plus!=0 #智力
  367.       height+=1
  368.     end      
  369.     if element_set.empty?!=true  #属性。为属性 ID 的数组
  370.       height+=1
  371.     end  
  372.     if plus_state_set.empty?!=true  #附加状态。为状态 ID 的数组
  373.       height+=plus_state_set.size  
  374.     end
  375.     if minus_state_set.empty?!=true  #解除状态。为状态 ID 的数组
  376.       height+=minus_state_set.size   
  377.     end
  378.    
  379.    
  380.     if (weapon.levels + weapon.strs + weapon.dexs\
  381.       + weapon.agis + weapon.ints).to_i != 0
  382.       height+=1
  383.     end
  384.     if weapon.levels.to_i != 0
  385.       height+=1
  386.     end
  387.     if weapon.strs.to_i != 0
  388.       height+=1
  389.     end
  390.     if weapon.dexs.to_i != 0
  391.       height+=1
  392.     end
  393.     if weapon.agis.to_i != 0
  394.       height+=1
  395.     end
  396.     if weapon.ints.to_i != 0
  397.       height+=1
  398.     end
  399.    
  400.    
  401.     self.height=height*15+10   
  402.     self.contents = Bitmap.new(self.width - 32,self.height - 32)
  403.     self.contents.clear
  404.     #描绘名字
  405.     [email protected]
  406.     self.contents.font.color = text_color(weapon.name_color)#颜色脚本
  407.     self.contents.font.size=18
  408.     if text!=nil
  409.       self.visible = true
  410.       self.contents.draw_text(0,0, @weapon.name.size*7, 20, text, 0)
  411.     else
  412.       self.visible = false
  413.     end
  414.     x=0
  415.     y+=1
  416.     text=description
  417.     #描绘描叙
  418.     while ((text = description.slice!(/./m)) != nil)
  419.       self.contents.font.color = text_color(weapon.weapon_self_color)
  420.       self.contents.font.size=14
  421.       self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
  422.       x+=1
  423.       if x==10#每行10个字
  424.         x=0
  425.         y+=1      
  426.       end
  427.     end
  428.       #价格
  429.       x=0
  430.       y+=1      
  431.       text="价格:"[email protected]_s
  432.       self.contents.font.color = text_color(weapon.weapon_q_color)
  433.       self.contents.font.size=14   
  434.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)

  435.      if (weapon.levels + weapon.strs + weapon.dexs\
  436.       + weapon.agis + weapon.ints).to_i != 0
  437.       x=0
  438.       y+=1 #空行     
  439.       text="装备条件:"
  440.       self.contents.font.color = Color.new(255,0,0,255)
  441.       self.contents.font.size=14   
  442.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  443.       if weapon.levels.to_i != 0
  444.         y+=1
  445.         text="需要等级:"+weapon.levels
  446.         self.contents.font.color = Color.new(255,255,0,255)
  447.         self.contents.font.size=14
  448.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  449.       end
  450.       if weapon.strs.to_i != 0
  451.         y+=1
  452.         text="必要力量:"+weapon.strs
  453.         self.contents.font.color = Color.new(255,255,0,255)
  454.         self.contents.font.size=14
  455.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  456.       end
  457.       if weapon.dexs.to_i != 0
  458.         y+=1
  459.         text="必要灵巧:"+weapon.dexs
  460.         self.contents.font.color = Color.new(255,255,0,255)
  461.         self.contents.font.size=14
  462.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  463.       end
  464.       if weapon.agis.to_i != 0
  465.         y+=1
  466.         text="必要速度:"+weapon.agis
  467.         self.contents.font.color = Color.new(255,255,0,255)
  468.         self.contents.font.size=14
  469.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  470.       end
  471.       if weapon.ints.to_i != 0
  472.         y+=1
  473.         text="必要魔力:"+weapon.ints
  474.         self.contents.font.color = Color.new(255,255,0,255)
  475.         self.contents.font.size=14
  476.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  477.       end
  478.    end
  479.       
  480.       
  481.     #由特技属性确定高
  482.     #攻击
  483.       x=0
  484.       y+=1 #空行     
  485.       text="攻击:"[email protected]_s
  486.       self.contents.font.color = text_color(weapon.weapon_atk_color)#颜色脚本
  487.       self.contents.font.size=14   
  488.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)   
  489.     if @weapon.pdef!=0 #物理防御
  490.       x=0
  491.       y+=1      
  492.       text="物理防御:"[email protected]_s
  493.       self.contents.font.color = text_color(weapon.weapon_def_color)#颜色脚本
  494.       self.contents.font.size=14   
  495.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  496.     end      
  497.     if @weapon.mdef!=0 #魔法防御
  498.       x=0
  499.       y+=1      
  500.       text="魔法防御:"[email protected]_s
  501.       self.contents.font.color = text_color(weapon.weapon_mdef_color)#颜色脚本
  502.       self.contents.font.size=14   
  503.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  504.     end
  505.     if @weapon.str_plus!=0 #力量
  506.       x=0
  507.       y+=1
  508.       if @weapon.str_plus > 0
  509.         text=$data_system.words.str+"  + "[email protected]_plus.to_s
  510.       else
  511.         [email protected]_plus
  512.         text=$data_system.words.str+"  - "+str_minus.to_s
  513.       end
  514.       self.contents.font.color = text_color(weapon.weapon_str_color)#颜色脚本
  515.       self.contents.font.size=14   
  516.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  517.     end
  518.     if @weapon.dex_plus!=0#体质
  519.       x=0
  520.       y+=1      
  521.       if @weapon.dex_plus > 0
  522.         text=$data_system.words.dex+"  + "[email protected]_plus.to_s
  523.       else
  524.         [email protected]_plus
  525.         text=$data_system.words.dex+"  - "+dex_minus.to_s
  526.       end
  527.       self.contents.font.color = text_color(weapon.weapon_dex_color)#颜色脚本
  528.       self.contents.font.size=14   
  529.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  530.     end
  531.     if @weapon.agi_plus!=0#敏捷
  532.       x=0
  533.       y+=1      
  534.       if @weapon.agi_plus > 0
  535.         text=$data_system.words.agi+"  + "[email protected]_plus.to_s
  536.       else
  537.         [email protected]_plus
  538.         text=$data_system.words.agi+"  - "+agi_minus.to_s
  539.       end
  540.       self.contents.font.color = text_color(weapon.weapon_agi_color)#颜色脚本
  541.       self.contents.font.size=14   
  542.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  543.     end
  544.     if @weapon.int_plus!=0 #智力
  545.       x=0
  546.       y+=1      
  547.       if @weapon.int_plus > 0
  548.         text=$data_system.words.int+"  + "[email protected]_plus.to_s
  549.       else
  550.         [email protected]_plus
  551.         text=$data_system.words.int+"  - "+int_minus.to_s
  552.       end
  553.       self.contents.font.color = text_color(weapon.weapon_int_color)#颜色脚本
  554.       self.contents.font.size=14   
  555.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  556.     end
  557.     #武器属性   
  558.     if element_set.empty? != true  #属性。为属性 ID 的数组
  559.       text="属性:"
  560.       for i in 0...element_set.size
  561.         text+=$data_system.elements[element_set[i]]+" "
  562.       end
  563.       x=0
  564.       y+=1
  565.       self.contents.font.color = text_color(weapon.weapon_sx_color)
  566.       self.contents.font.size=14
  567.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  568.     end
  569.     #附加状态
  570.     if plus_state_set.empty? != true  #附加状态。为状态 ID 的数组
  571.       text="附加状态:"
  572.       x=0
  573.       y+=1
  574.       self.contents.font.color = text_color(weapon.weapon_fstate_color)
  575.       self.contents.font.size=14
  576.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  577.       y-=1
  578.       x+=text.size*5      
  579.       for i in 0...plus_state_set.size
  580.         y+=1
  581.         text=$data_states[plus_state_set[i]].name        
  582.         self.contents.font.color = text_color(weapon.weapon_fstate_color)
  583.         self.contents.font.size=14
  584.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  585.       end  
  586.     end
  587.     #解除状态
  588.     if minus_state_set.empty? != true  #解除状态。为状态 ID 的数组
  589.       text="解除状态:"
  590.       x=0
  591.       y+=1
  592.       self.contents.font.color = text_color(weapon.weapon_jstate_color)
  593.       self.contents.font.size=14
  594.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  595.       y-=1
  596.       x+=text.size*5      
  597.       for i in 0...minus_state_set.size
  598.         y+=1
  599.         text=$data_states[minus_state_set[i]].name        
  600.         self.contents.font.color = text_color(weapon.weapon_jstate_color)
  601.         self.contents.font.size=14
  602.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  603.       end  
  604.     end
  605.   end
  606. end

  607. class Window_Help < Window_Base
  608.   #--------------------------------------------------------------------------
  609.   # ● 防具帮助窗口
  610.   #--------------------------------------------------------------------------
  611.     def set_armor_text(armor)
  612.     @armor=armor
  613.     description=""
  614.     [email protected]
  615.    # 取得屬性、附加狀態、解除狀態之副本
  616.    element_set = @armor.guard_element_set.clone
  617.    guard_state_set = @armor.guard_state_set.clone
  618.    # 過濾不顯示的描述
  619.    element_set -= UNSHOW_ELEMENT
  620.    guard_state_set -= UNSHOW_STATE
  621.     x=0
  622.     y=0
  623.     height=1     #依要显示的内容确定高
  624.     #由描叙确定高
  625.     height+=description.size/3/10
  626.     if description.size%10 !=0
  627.       height+=1
  628.     end
  629.     height+=2  #2个空行,价格
  630.     if @armor.pdef !=0 #物理防御
  631.       height+=1
  632.     end      
  633.     if @armor.mdef !=0 #魔法防御
  634.       height+=1
  635.     end
  636.     if @armor.str_plus !=0 #力量
  637.       height+=1
  638.     end
  639.     if @armor.dex_plus !=0#体质
  640.       height+=1
  641.     end
  642.     if @armor.agi_plus !=0#敏捷
  643.       height+=1
  644.     end
  645.     if @armor.int_plus !=0 #智力
  646.       height+=1
  647.     end      
  648.     if element_set.empty? != true  #属性防御。为属性 ID 的数组
  649.       height+=1
  650.     end  
  651.     if guard_state_set.empty? != true  #状态防御。为状态 ID 的数组
  652.       height+=guard_state_set.size  
  653.     end   
  654.    
  655.    
  656.     if (armor.levels + armor.strs + armor.dexs\
  657.       + armor.agis + armor.ints).to_i != 0
  658.       height+=1
  659.     end
  660.     if armor.levels.to_i != 0
  661.       height+=1
  662.     end
  663.     if armor.strs.to_i != 0
  664.       height+=1
  665.     end
  666.     if armor.dexs.to_i != 0
  667.       height+=1
  668.     end
  669.     if armor.agis.to_i != 0
  670.       height+=1
  671.     end
  672.     if armor.ints.to_i != 0
  673.       height+=1
  674.     end
  675.    
  676.    
  677.     self.height=height*16+25
  678.     self.contents = Bitmap.new(self.width - 32,self.height - 32)
  679.     self.contents.clear
  680.     #描绘名字
  681.     [email protected]
  682.     self.contents.font.color = text_color(armor.name_color)#颜色脚本
  683.     self.contents.font.size=18
  684.     if text!=nil
  685.       self.visible = true
  686.       self.contents.draw_text(x+45,0, @armor.name.size*7, 20, text, 1)
  687.     else
  688.       self.visible = false
  689.     end
  690.     x=0
  691.     y+=1
  692.     text=description
  693.     #描绘描叙
  694.     while ((text = description.slice!(/./m)) != nil)
  695.       self.contents.font.color = text_color(armor.armor_self_color)
  696.       self.contents.font.size=14
  697.       self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
  698.       x+=1
  699.       if x==10#每行10个字
  700.         x=0
  701.         y+=1      
  702.       end
  703.     end
  704.       x=0
  705.       y+=1
  706.       text="价格:"[email protected]_s
  707.       self.contents.font.color = text_color(armor.armor_q_color)
  708.       self.contents.font.size=14   
  709.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  710.       x=0
  711.       y+=1
  712.       
  713.       
  714.       
  715.       if (armor.levels + armor.strs + armor.dexs\
  716.       + armor.agis + armor.ints).to_i != 0   
  717.       text="装备条件"
  718.       self.contents.font.color = Color.new(255,0,0,255)
  719.       self.contents.font.size=14   
  720.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  721.       x+=15
  722.       if armor.levels.to_i != 0
  723.         y+=1
  724.         text="需要等级:"+armor.levels
  725.         self.contents.font.color = Color.new(255,255,0,255)
  726.         self.contents.font.size=14
  727.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  728.       end
  729.       if armor.strs.to_i != 0
  730.         y+=1
  731.         text="必要力量:"+armor.strs
  732.         self.contents.font.color = Color.new(255,255,0,255)
  733.         self.contents.font.size=14
  734.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  735.       end
  736.       if armor.dexs.to_i != 0
  737.         y+=1
  738.         text="必要灵巧:"+armor.dexs
  739.         self.contents.font.color = Color.new(255,255,0,255)
  740.         self.contents.font.size=14
  741.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  742.       end
  743.       if armor.agis.to_i != 0
  744.         y+=1
  745.         text="必要速度:"+armor.agis
  746.         self.contents.font.color = Color.new(255,255,0,255)
  747.         self.contents.font.size=14
  748.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  749.       end
  750.       if armor.ints.to_i != 0
  751.         y+=1
  752.         text="必要魔力:"+armor.ints
  753.         self.contents.font.color = Color.new(255,255,0,255)
  754.         self.contents.font.size=14
  755.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  756.       end
  757.       y+=1
  758.     end
  759.     x=0
  760.     if @armor.pdef!=0 #物理防御
  761.       text="物理防御:"[email protected]_s
  762.       self.contents.font.color = text_color(armor.armor_def_color)#颜色脚本
  763.       self.contents.font.size=14   
  764.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  765.       x=0
  766.       y+=1      
  767.     end      
  768.     if @armor.mdef!=0 #魔法防御
  769.       text="魔法防御:"[email protected]_s
  770.       self.contents.font.color = text_color(armor.armor_mdef_color)#颜色脚本
  771.       self.contents.font.size=14   
  772.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  773.       x=0
  774.       y+=1
  775.     end
  776.     #属性防御   
  777.     if element_set.empty? !=true  #属性。为属性 ID 的数组
  778.       text="属性防御:"
  779.       for i in 0...element_set.size
  780.         text+=$data_system.elements[element_set[i]]+" "
  781.       end
  782.       self.contents.font.color = text_color(armor.armor_sxdef_color)
  783.       self.contents.font.size=14
  784.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  785.       x=0
  786.       y+=1
  787.     end
  788.     #状态防御
  789.     if guard_state_set.empty?!=true  #附加状态。为状态 ID 的数组
  790.       text="状态防御:"
  791.       self.contents.font.color = text_color(armor.armor_statedef_color)
  792.       self.contents.font.size=14
  793.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  794.       y-=1
  795.       x+=text.size*5      
  796.       for i in 0...guard_state_set.size
  797.         y+=1
  798.         text=$data_states[guard_state_set[i]].name        
  799.         self.contents.font.color = text_color(armor.armor_statedef_color)
  800.         self.contents.font.size=14
  801.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  802.       end  
  803.     end
  804.     if @armor.str_plus!=0 #力量
  805.       x=0
  806.       y+=1
  807.       if @armor.str_plus > 0
  808.         text=$data_system.words.str+"  + "[email protected]_plus.to_s
  809.       else
  810.         [email protected]_plus
  811.         text=$data_system.words.str+"  - "+str_minus.to_s
  812.       end
  813.       self.contents.font.color = text_color(armor.armor_str_color)#颜色脚本
  814.       self.contents.font.size=14   
  815.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  816.     end
  817.     if @armor.dex_plus!=0#体质
  818.       x=0
  819.       y+=1      
  820.       if @armor.dex_plus > 0
  821.         text=$data_system.words.dex+"  + "[email protected]_plus.to_s
  822.       else
  823.         [email protected]_plus
  824.         text=$data_system.words.dex+"  - "+dex_minus.to_s
  825.       end
  826.       self.contents.font.color = text_color(armor.armor_dex_color)#颜色脚本
  827.       self.contents.font.size=14   
  828.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  829.     end
  830.     if @armor.agi_plus!=0#敏捷
  831.       x=0
  832.       y+=1      
  833.       if @armor.agi_plus > 0
  834.         text=$data_system.words.agi+"  + "[email protected]_plus.to_s
  835.       else
  836.         [email protected]_plus
  837.         text=$data_system.words.agi+"  - "+agi_minus.to_s
  838.       end
  839.       self.contents.font.color = text_color(armor.armor_agi_color)#颜色脚本
  840.       self.contents.font.size=14   
  841.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  842.     end
  843.     if @armor.int_plus!=0 #智力
  844.       x=0
  845.       y+=1      
  846.       if @armor.int_plus > 0
  847.         text=$data_system.words.int+"  + "[email protected]_plus.to_s
  848.       else
  849.         [email protected]_plus
  850.         text=$data_system.words.int+"  - "+int_minus.to_s
  851.       end
  852.       self.contents.font.color = text_color(armor.armor_int_color)#颜色脚本
  853.       self.contents.font.size=14   
  854.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  855.     end
  856.   end
  857. end


  858. class Window_Help < Window_Base
  859.   #--------------------------------------------------------------------------
  860.   # ● 技能帮助窗口
  861.   #--------------------------------------------------------------------------
  862.   def set_skill_text(skill)
  863.     @skill=skill
  864.     description=""
  865.     [email protected]
  866.    # 取得屬性、附加狀態、解除狀態之副本
  867.    element_set = @skill.element_set.clone
  868.    plus_state_set = @skill.plus_state_set.clone
  869.    minus_state_set = @skill.minus_state_set.clone
  870.    # 過濾不顯示的描述
  871.    element_set -= UNSHOW_ELEMENT
  872.    plus_state_set -= UNSHOW_STATE
  873.    minus_state_set -= UNSHOW_STATE
  874.     x=0
  875.     y=0
  876.     height=1     #依要显示的内容确定高
  877.     #由描叙确定高
  878.     height+=description.size/3/10
  879.     if description.size%10!=0
  880.       height+=1
  881.     end
  882.     height+=4  #空行,效果范围,消费SP,命中率
  883.     if @skill.power!=0  #威力,威力为0,则可能为状态魔法
  884.       height+=1
  885.     end
  886.     if element_set.empty?!=true  #属性。为属性 ID 的数组
  887.       height+=1
  888.     end  
  889.     if plus_state_set.empty?!=true  #附加状态。为状态 ID 的数组
  890.       height+=plus_state_set.size  
  891.     end
  892.     if minus_state_set.empty?!=true  #解除状态。为状态 ID 的数组
  893.       height+=minus_state_set.size   
  894.     end     
  895.     self.height=height*15+40+15   
  896.     self.contents = Bitmap.new(self.width - 32,self.height - 32)
  897.     self.contents.clear
  898.     #描绘名字
  899.     [email protected]
  900.     self.contents.font.color =text_color(skill.name_color)
  901.     self.contents.font.size=18
  902.     if text!=nil
  903.       self.visible = true
  904.       self.contents.draw_text(0,0, @skill.name.size*7, 20, text, 0)
  905.     else
  906.       self.visible = false
  907.     end
  908.     x=0
  909.     y+=1
  910.     text=description
  911.     #描绘描叙
  912.     while ((text = description.slice!(/./m)) != nil)
  913.       self.contents.font.color =  text_color(skill.skill_self_color)
  914.       self.contents.font.size=14
  915.       self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
  916.       x+=1
  917.       text
  918.       if x==10#每行10个字
  919.         x=0
  920.         y+=1      
  921.       end
  922.     end
  923.     #由特技属性确定高
  924.     #效果范围
  925.    
  926.     scope = {0=>"特殊技能",1=>"敌单体",2=>"敌全体",3=>"己方单体",4=>"己方全体",5=>"己方昏死单体",6=>"己方昏死全体",7=>"使用者"}#HASH表
  927.     text="范围:"+scope[@skill.scope]
  928.     x=0
  929.     y+=2  #空一行
  930.     self.contents.font.color = text_color(skill.skill_fw_color)
  931.     self.contents.font.size=14
  932.     self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  933.    
  934.     #威力
  935.     if @skill.power!=0
  936.       x=0
  937.       y+=1
  938.       [email protected] > 0 ? @skill.power : -1* @skill.power
  939.       text="威力:"+c.to_s
  940.       self.contents.font.color = text_color(skill.skill_wl_color)
  941.       self.contents.font.size=14   
  942.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  943.     end  
  944.     #描绘消费SP
  945.     x=0
  946.     y+=1
  947.     text="消耗SP:"[email protected]_cost.to_s
  948.     self.contents.font.color = text_color(skill.skill_jsp_color)
  949.     self.contents.font.size=14   
  950.     self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  951.     #命中率
  952.     x=0
  953.     y+=1
  954.     text="命中率:"[email protected]_s+"%"
  955.     self.contents.font.color = text_color(skill.skill_mzl_color)
  956.     self.contents.font.size=14
  957.     self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  958.     #攻击属性
  959.    
  960.     if element_set.empty? != true  #属性。为属性 ID 的数组
  961.       text="属性:"
  962.       for i in 0...element_set.size
  963.         text+=$data_system.elements[element_set[i]]+" "
  964.       end
  965.       x=0
  966.       y+=1
  967.       self.contents.font.color = text_color(skill.skill_sx_color)
  968.       self.contents.font.size=14
  969.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  970.     end
  971.     #附加状态
  972.     if plus_state_set.empty? != true  #附加状态。为状态 ID 的数组
  973.       text="附加状态:"
  974.       x=0
  975.       y+=1
  976.       self.contents.font.color = text_color(skill.skill_fstate_color)
  977.       self.contents.font.size=14
  978.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  979.       y-=1
  980.       x+=text.size*5      
  981.       for i in 0...plus_state_set.size
  982.         y+=1
  983.         text=$data_states[plus_state_set[i]].name        
  984.         self.contents.font.color = text_color(skill.skill_fstate_color)
  985.         self.contents.font.size=14
  986.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  987.       end  
  988.     end
  989.     #解除状态
  990.     if minus_state_set.empty? != true  #解除状态。为状态 ID 的数组
  991.       text="解除状态:"
  992.       x=0
  993.       y+=1
  994.       self.contents.font.color = text_color(skill.skill_jstate_color)
  995.       self.contents.font.size=14
  996.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  997.       y-=1
  998.       x+=text.size*5      
  999.       for i in 0...minus_state_set.size
  1000.         y+=1
  1001.         text=$data_states[minus_state_set[i]].name        
  1002.         self.contents.font.color = text_color(skill.skill_jstate_color)
  1003.         self.contents.font.size=14
  1004.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  1005.       end  
  1006.     end     
  1007.   end
  1008. end

  1009. class Window_Item < Window_Selectable
  1010.   #--------------------------------------------------------------------------
  1011.   # ● 刷新帮助文本
  1012.   #--------------------------------------------------------------------------
  1013.   def update_help
  1014. #    @help_window.set_text(self.item == nil ? "" : self.item.description)
  1015.     @help_window.set_text(item)
  1016.     #校正帮助窗口位置
  1017.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1018.   end
  1019. end
  1020. class Window_Skill < Window_Selectable
  1021.   #--------------------------------------------------------------------------
  1022.   # ● 刷新帮助文本
  1023.   #--------------------------------------------------------------------------
  1024.   def update_help
  1025. #    @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  1026.     @help_window.set_text(skill)
  1027.     #校正帮助窗口位置
  1028.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1029.   end
  1030. end
  1031. class Window_EquipRight < Window_Selectable
  1032.   def update_help
  1033. #    @help_window.set_text(self.item == nil ? "" : self.item.description)
  1034.     @help_window.set_text(item)
  1035.     #校正帮助窗口位置
  1036.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1037.   end
  1038. end
  1039. class Window_EquipItem < Window_Selectable
  1040.   def update_help
  1041. #    @help_window.set_text(self.item == nil ? "" : self.item.description)
  1042.     @help_window.set_text(item)
  1043.     #校正帮助窗口位置
  1044.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1045.   end
  1046. end
  1047. class Window_ShopBuy < Window_Selectable
  1048.   def update_help
  1049.     @help_window.set_text(item)
  1050.     #校正帮助窗口位置
  1051.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1052.   end
  1053. end
  1054. class Window_ShopSell < Window_Selectable
  1055.   def update_help
  1056.     @help_window.set_text(item)
  1057.     #校正帮助窗口位置
  1058.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1059.   end
  1060. end


复制代码

作者: Wind2010    时间: 2011-2-8 16:08
其实那啥...从默认脚本复制个Window_Help,然后把复制过来的窗口名字改了(例如改成Window_Help_1),在Scene_File调用这个帮助窗口而不调用Window_Help就可以了...




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