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

Project1

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

[已经解决] 等级突破限制出了问题

[复制链接]

Lv1.梦旅人

神仙

梦石
0
星屑
69
在线时间
596 小时
注册时间
2007-5-14
帖子
1289
跳转到指定楼层
1
发表于 2010-8-25 11:57:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 李梦遥 于 2010-8-25 12:17 编辑

角色若在99级之内,查看菜单,点开状态,是正常的。
一旦突破99级,再去查看菜单里面的状态,就会弹错。
下面是出错的脚本,是不是破了99级,100级以后的状态,他无法读取啊?请求高人解决,在第93行
我用的是轩辕剑式菜单,我在范例工程里面添加了突破限制脚本,也是这样,突破99级,看状态就会弹错,和我一样,也是装备项扩充       n += weapon != nil ? weapon.str_plus : 0 这段错了
  1. # ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  2. #
  3. #                                防具类追加
  4. #
  5. # ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  6. module RPG
  7.   class Armor
  8.     def name
  9.       name = @name.split(/,/)[0]
  10.       return name != nil ? name : ''
  11.     end
  12.     def kind
  13.       kind  = @name.split(/,/)[1]
  14.       return kind  != nil ? kind.to_i : @kind
  15.     end
  16.   end
  17. end
  18. # ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  19. #
  20. #                  Game_Actor添加新的防具ID,并对相关方法修正
  21. #
  22. # ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  23. class Game_Actor < Game_Battler
  24.   attr_reader   :armor5_id                # 手套 ID
  25.   attr_reader   :armor6_id                # 鞋 ID
  26.   attr_reader   :armor7_id                # 法宝2 ID
  27.   #--------------------------------------------------------------------------
  28.   # ● 设置
  29.   #     actor_id : 角色 ID
  30.   #--------------------------------------------------------------------------
  31.   alias old_setup setup
  32.   def setup(actor_id)
  33.     old_setup(actor_id)
  34.     @armor5_id = 0
  35.     @armor6_id = 0
  36.     @armor7_id = 0
  37.     update_auto_state(nil, $data_armors[@armor5_id])
  38.     update_auto_state(nil, $data_armors[@armor6_id])
  39.     update_auto_state(nil, $data_armors[@armor7_id])
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 取得属性修正值
  43.   #     element_id : 属性 ID
  44.   #--------------------------------------------------------------------------
  45.   def element_rate(element_id)
  46.     # 获取对应属性有效度的数值
  47.     table = [0,200,150,100,50,0,-100]
  48.     result = table[$data_classes[@class_id].element_ranks[element_id]]
  49.     # 防具能防御本属性的情况下效果减半
  50.     for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id, @armor5_id, @armor6_id, @armor7_id]
  51.       armor = $data_armors[i]
  52.       if armor != nil and armor.guard_element_set.include?(element_id)
  53.         result /= 2
  54.       end
  55.     end
  56.     # 状态能防御本属性的情况下效果减半
  57.     for i in @states
  58.       if $data_states[i].guard_element_set.include?(element_id)
  59.         result /= 2
  60.       end
  61.     end
  62.     # 过程结束
  63.     return result
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 判定防御属性
  67.   #     state_id : 属性 ID
  68.   #--------------------------------------------------------------------------
  69.   def state_guard?(state_id)
  70.     for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id, @armor5_id, @armor6_id, @armor7_id]
  71.       armor = $data_armors[i]
  72.       if armor != nil
  73.         if armor.guard_state_set.include?(state_id)
  74.           return true
  75.         end
  76.       end
  77.     end
  78.     return false
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 获取基本力量
  82.   #--------------------------------------------------------------------------
  83.   def base_str
  84.     n = $data_actors[@actor_id].parameters[2, @level]
  85.     weapon = $data_weapons[@weapon_id]
  86.     armor1 = $data_armors[@armor1_id]
  87.     armor2 = $data_armors[@armor2_id]
  88.     armor3 = $data_armors[@armor3_id]
  89.     armor4 = $data_armors[@armor4_id]
  90.     armor5 = $data_armors[@armor5_id]
  91.     armor6 = $data_armors[@armor6_id]
  92.     armor7 = $data_armors[@armor7_id]
  93.     n += weapon != nil ? weapon.str_plus : 0
  94.     n += armor1 != nil ? armor1.str_plus : 0
  95.     n += armor2 != nil ? armor2.str_plus : 0
  96.     n += armor3 != nil ? armor3.str_plus : 0
  97.     n += armor4 != nil ? armor4.str_plus : 0
  98.     n += armor5 != nil ? armor5.str_plus : 0
  99.     n += armor6 != nil ? armor6.str_plus : 0
  100.     n += armor7 != nil ? armor7.str_plus : 0
  101.     return [[n, 1].max, 999].min
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 获取基本灵巧
  105.   #--------------------------------------------------------------------------
  106.   def base_dex
  107.     n = $data_actors[@actor_id].parameters[3, @level]
  108.     weapon = $data_weapons[@weapon_id]
  109.     armor1 = $data_armors[@armor1_id]
  110.     armor2 = $data_armors[@armor2_id]
  111.     armor3 = $data_armors[@armor3_id]
  112.     armor4 = $data_armors[@armor4_id]
  113.     armor5 = $data_armors[@armor5_id]
  114.     armor6 = $data_armors[@armor6_id]
  115.     armor7 = $data_armors[@armor7_id]
  116.     n += weapon != nil ? weapon.dex_plus : 0
  117.     n += armor1 != nil ? armor1.dex_plus : 0
  118.     n += armor2 != nil ? armor2.dex_plus : 0
  119.     n += armor3 != nil ? armor3.dex_plus : 0
  120.     n += armor4 != nil ? armor4.dex_plus : 0
  121.     n += armor5 != nil ? armor5.dex_plus : 0
  122.     n += armor6 != nil ? armor6.dex_plus : 0
  123.     n += armor7 != nil ? armor7.dex_plus : 0
  124.     return [[n, 1].max, 999].min
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 获取基本速度
  128.   #--------------------------------------------------------------------------
  129.   def base_agi
  130.     n = $data_actors[@actor_id].parameters[4, @level]
  131.     weapon = $data_weapons[@weapon_id]
  132.     armor1 = $data_armors[@armor1_id]
  133.     armor2 = $data_armors[@armor2_id]
  134.     armor3 = $data_armors[@armor3_id]
  135.     armor4 = $data_armors[@armor4_id]
  136.     armor5 = $data_armors[@armor5_id]
  137.     armor6 = $data_armors[@armor6_id]
  138.     armor7 = $data_armors[@armor7_id]
  139.     n += weapon != nil ? weapon.agi_plus : 0
  140.     n += armor1 != nil ? armor1.agi_plus : 0
  141.     n += armor2 != nil ? armor2.agi_plus : 0
  142.     n += armor3 != nil ? armor3.agi_plus : 0
  143.     n += armor4 != nil ? armor4.agi_plus : 0
  144.     n += armor5 != nil ? armor5.agi_plus : 0
  145.     n += armor6 != nil ? armor6.agi_plus : 0
  146.     n += armor7 != nil ? armor7.agi_plus : 0
  147.     return [[n, 1].max, 999].min
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # ● 获取基本魔力
  151.   #--------------------------------------------------------------------------
  152.   def base_int
  153.     n = $data_actors[@actor_id].parameters[5, @level]
  154.     weapon = $data_weapons[@weapon_id]
  155.     armor1 = $data_armors[@armor1_id]
  156.     armor2 = $data_armors[@armor2_id]
  157.     armor3 = $data_armors[@armor3_id]
  158.     armor4 = $data_armors[@armor4_id]
  159.     armor5 = $data_armors[@armor5_id]
  160.     armor6 = $data_armors[@armor6_id]
  161.     armor7 = $data_armors[@armor7_id]
  162.     n += weapon != nil ? weapon.int_plus : 0
  163.     n += armor1 != nil ? armor1.int_plus : 0
  164.     n += armor2 != nil ? armor2.int_plus : 0
  165.     n += armor3 != nil ? armor3.int_plus : 0
  166.     n += armor4 != nil ? armor4.int_plus : 0
  167.     n += armor5 != nil ? armor5.int_plus : 0
  168.     n += armor6 != nil ? armor6.int_plus : 0
  169.     n += armor7 != nil ? armor7.int_plus : 0
  170.     return [[n, 1].max, 999].min
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ● 获取基本物理防御
  174.   #--------------------------------------------------------------------------
  175.   def base_pdef
  176.     weapon = $data_weapons[@weapon_id]
  177.     armor1 = $data_armors[@armor1_id]
  178.     armor2 = $data_armors[@armor2_id]
  179.     armor3 = $data_armors[@armor3_id]
  180.     armor4 = $data_armors[@armor4_id]
  181.     armor5 = $data_armors[@armor5_id]
  182.     armor6 = $data_armors[@armor6_id]
  183.     armor7 = $data_armors[@armor7_id]
  184.     pdef1 = weapon != nil ? weapon.pdef : 0
  185.     pdef2 = armor1 != nil ? armor1.pdef : 0
  186.     pdef3 = armor2 != nil ? armor2.pdef : 0
  187.     pdef4 = armor3 != nil ? armor3.pdef : 0
  188.     pdef5 = armor4 != nil ? armor4.pdef : 0
  189.     pdef6 = armor5 != nil ? armor5.pdef : 0
  190.     pdef7 = armor6 != nil ? armor6.pdef : 0
  191.     pdef8 = armor7 != nil ? armor7.pdef : 0
  192.     return pdef1 + pdef2 + pdef3 + pdef4 + pdef5 + pdef6 + pdef7 + pdef8
  193.   end
  194.   #--------------------------------------------------------------------------
  195.   # ● 获取基本魔法防御
  196.   #--------------------------------------------------------------------------
  197.   def base_mdef
  198.     weapon = $data_weapons[@weapon_id]
  199.     armor1 = $data_armors[@armor1_id]
  200.     armor2 = $data_armors[@armor2_id]
  201.     armor3 = $data_armors[@armor3_id]
  202.     armor4 = $data_armors[@armor4_id]
  203.     armor5 = $data_armors[@armor5_id]
  204.     armor6 = $data_armors[@armor6_id]
  205.     armor7 = $data_armors[@armor7_id]
  206.     mdef1 = weapon != nil ? weapon.mdef : 0
  207.     mdef2 = armor1 != nil ? armor1.mdef : 0
  208.     mdef3 = armor2 != nil ? armor2.mdef : 0
  209.     mdef4 = armor3 != nil ? armor3.mdef : 0
  210.     mdef5 = armor4 != nil ? armor4.mdef : 0
  211.     mdef6 = armor5 != nil ? armor5.mdef : 0
  212.     mdef7 = armor6 != nil ? armor6.mdef : 0
  213.     mdef8 = armor7 != nil ? armor7.mdef : 0
  214.     return mdef1 + mdef2 + mdef3 + mdef4 + mdef5 + mdef6 + mdef7 + mdef8
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● 获取基本回避修正
  218.   #--------------------------------------------------------------------------
  219.   def base_eva
  220.     armor1 = $data_armors[@armor1_id]
  221.     armor2 = $data_armors[@armor2_id]
  222.     armor3 = $data_armors[@armor3_id]
  223.     armor4 = $data_armors[@armor4_id]
  224.     armor5 = $data_armors[@armor5_id]
  225.     armor6 = $data_armors[@armor6_id]
  226.     armor7 = $data_armors[@armor7_id]
  227.     eva1 = armor1 != nil ? armor1.eva : 0
  228.     eva2 = armor2 != nil ? armor2.eva : 0
  229.     eva3 = armor3 != nil ? armor3.eva : 0
  230.     eva4 = armor4 != nil ? armor4.eva : 0
  231.     eva5 = armor5 != nil ? armor5.eva : 0
  232.     eva6 = armor6 != nil ? armor6.eva : 0
  233.     eva7 = armor7 != nil ? armor7.eva : 0
  234.     return eva1 + eva2 + eva3 + eva4 + eva5 + eva6 + eva7
  235.   end
  236.   #--------------------------------------------------------------------------
  237.   # ● 变更装备
  238.   #     equip_type : 装备类型
  239.   #     id    : 武器 or 防具 ID  (0 为解除装备)
  240.   #--------------------------------------------------------------------------
  241.   def equip(equip_type, id)
  242.     case equip_type
  243.     when 0  # 武器
  244.       if id == 0 or $game_party.weapon_number(id) > 0
  245.         $game_party.gain_weapon(@weapon_id, 1)
  246.         @weapon_id = id
  247.         $game_party.lose_weapon(id, 1)
  248.       end
  249.     when 1  # 盾
  250.       if id == 0 or $game_party.armor_number(id) > 0
  251.         update_auto_state($data_armors[@armor1_id], $data_armors[id])
  252.         $game_party.gain_armor(@armor1_id, 1)
  253.         @armor1_id = id
  254.         $game_party.lose_armor(id, 1)
  255.       end
  256.     when 2  # 头
  257.       if id == 0 or $game_party.armor_number(id) > 0
  258.         update_auto_state($data_armors[@armor2_id], $data_armors[id])
  259.         $game_party.gain_armor(@armor2_id, 1)
  260.         @armor2_id = id
  261.         $game_party.lose_armor(id, 1)
  262.       end
  263.     when 3  # 身体
  264.       if id == 0 or $game_party.armor_number(id) > 0
  265.         update_auto_state($data_armors[@armor3_id], $data_armors[id])
  266.         $game_party.gain_armor(@armor3_id, 1)
  267.         @armor3_id = id
  268.         $game_party.lose_armor(id, 1)
  269.       end
  270.     when 4  # 手套
  271.       if id == 0 or $game_party.armor_number(id) > 0
  272.         update_auto_state($data_armors[@armor4_id], $data_armors[id])
  273.         $game_party.gain_armor(@armor4_id, 1)
  274.         @armor4_id = id
  275.         $game_party.lose_armor(id, 1)
  276.       end
  277.     when 5  # 鞋
  278.       if id == 0 or $game_party.armor_number(id) > 0
  279.         update_auto_state($data_armors[@armor5_id], $data_armors[id])
  280.         $game_party.gain_armor(@armor5_id, 1)
  281.         @armor5_id = id
  282.         $game_party.lose_armor(id, 1)
  283.       end
  284.     when 6  # 法宝1
  285.       if id == 0 or $game_party.armor_number(id) > 0
  286.         update_auto_state($data_armors[@armor6_id], $data_armors[id])
  287.         $game_party.gain_armor(@armor6_id, 1)
  288.         @armor6_id = id
  289.         $game_party.lose_armor(id, 1)
  290.       end
  291.     when 7  # 法宝2
  292.       if id == 0 or $game_party.armor_number(id) > 0
  293.         update_auto_state($data_armors[@armor7_id], $data_armors[id])
  294.         $game_party.gain_armor(@armor7_id, 1)
  295.         @armor7_id = id
  296.         $game_party.lose_armor(id, 1)
  297.       end
  298.     end
  299.   end
  300.   #--------------------------------------------------------------------------
  301.   # ● 更改职业 ID
  302.   #     class_id : 新的职业 ID
  303.   #--------------------------------------------------------------------------
  304.   def class_id=(class_id)
  305.     if $data_classes[class_id] != nil
  306.       @class_id = class_id
  307.       # 避开无法装备的物品
  308.       unless equippable?($data_weapons[@weapon_id])
  309.         equip(0, 0)
  310.       end
  311.       unless equippable?($data_armors[@armor1_id])
  312.         equip(1, 0)
  313.       end
  314.       unless equippable?($data_armors[@armor2_id])
  315.         equip(2, 0)
  316.       end
  317.       unless equippable?($data_armors[@armor3_id])
  318.         equip(3, 0)
  319.       end
  320.       unless equippable?($data_armors[@armor4_id])
  321.         equip(4, 0)
  322.       end
  323.       unless equippable?($data_armors[@armor5_id])
  324.         equip(5, 0)
  325.       end
  326.       unless equippable?($data_armors[@armor6_id])
  327.         equip(6, 0)
  328.       end
  329.       unless equippable?($data_armors[@armor7_id])
  330.         equip(7, 0)
  331.       end
  332.     end
  333.   end
  334. end
  335. # ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  336. #
  337. #              商店购买窗口美化,增加对新装备位置的描述
  338. #
  339. # ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  340. #==============================================================================
  341. # ■ Window_ShopStatus
  342. #------------------------------------------------------------------------------
  343. #  商店画面、显示物品所持数与角色装备的窗口。
  344. #==============================================================================

  345. class Window_ShopStatus < Window_Base
  346.   #--------------------------------------------------------------------------
  347.   # ● 刷新
  348.   #--------------------------------------------------------------------------
  349.   def refresh
  350.     self.contents.clear
  351.     if @item == nil
  352.       return
  353.     end
  354.     case @item
  355.     when RPG::Item
  356.       number = $game_party.item_number(@item.id)
  357.     when RPG::Weapon
  358.       number = $game_party.weapon_number(@item.id)
  359.     when RPG::Armor
  360.       number = $game_party.armor_number(@item.id)
  361.     end
  362.     self.contents.font.color = system_color
  363.     self.contents.draw_text(4, 0, 200, 32, "所持数")
  364.     self.contents.font.color = normal_color
  365.     self.contents.draw_text(204, 0, 32, 32, number.to_s, 2)
  366.     if @item.is_a?(RPG::Item)
  367.       return
  368.     end
  369.     # 添加装备品信息
  370.     for i in 0...$game_party.actors.size
  371.       # 获取角色
  372.       actor = $game_party.actors[i]
  373.       # 可以装备为普通文字颜色、不能装备设置为无效文字颜色
  374.       if actor.equippable?(@item)
  375.         self.contents.font.color = normal_color
  376.       else
  377.         self.contents.font.color = disabled_color
  378.       end
  379.       # 描绘角色名字
  380.       self.contents.draw_text(4, 64 + 64 * i, 120, 32, actor.name)
  381.       # 获取当前的装备品
  382.       if @item.is_a?(RPG::Weapon)
  383.         item1 = $data_weapons[actor.weapon_id]
  384.       elsif @item.kind == 0
  385.         item1 = $data_armors[actor.armor1_id]
  386.       elsif @item.kind == 1
  387.         item1 = $data_armors[actor.armor2_id]
  388.       elsif @item.kind == 2
  389.         item1 = $data_armors[actor.armor3_id]
  390.       elsif @item.kind == 3
  391.         item1 = $data_armors[actor.armor4_id]
  392.       elsif @item.kind == 4
  393.         item1 = $data_armors[actor.armor5_id]
  394.       elsif @item.kind == 5
  395.         item1 = $data_armors[actor.armor6_id]
  396.       else
  397.         item1 = $data_armors[actor.armor7_id]
  398.       end
  399.       # 可以装备的情况
  400.       if actor.equippable?(@item)
  401.         # 武器的情况
  402.         if @item.is_a?(RPG::Weapon)
  403.           atk1 = item1 != nil ? item1.atk : 0
  404.           atk2 = @item != nil ? @item.atk : 0
  405.           change = atk2 - atk1
  406.         end
  407.         # 防具的情况
  408.         if @item.is_a?(RPG::Armor)
  409.           pdef1 = item1 != nil ? item1.pdef : 0
  410.           mdef1 = item1 != nil ? item1.mdef : 0
  411.           pdef2 = @item != nil ? @item.pdef : 0
  412.           mdef2 = @item != nil ? @item.mdef : 0
  413.           change = pdef2 - pdef1 + mdef2 - mdef1
  414.         end
  415.         # 描绘能力值变化
  416.         self.contents.draw_text(124, 64 + 64 * i, 112, 32,
  417.           sprintf("%+d", change), 2)
  418.       end
  419.       # 描绘物品
  420.       if item1 != nil
  421.         x = 4
  422.         y = 64 + 64 * i + 32
  423.         bitmap = RPG::Cache.icon(item1.icon_name)
  424.         opacity = self.contents.font.color == normal_color ? 255 : 128
  425.         self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  426.         self.contents.draw_text(x + 28, y, 212, 32, item1.name)
  427.       end
  428.     end
  429.   end
  430. end
复制代码

99.jpg (15.18 KB, 下载次数: 5)

99.jpg

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42448
在线时间
7603 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

2
发表于 2010-8-25 12:12:40 | 只看该作者
可能数据库里没有100级以上的数据
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

神仙

梦石
0
星屑
69
在线时间
596 小时
注册时间
2007-5-14
帖子
1289
3
 楼主| 发表于 2010-8-25 12:14:07 | 只看该作者
不是,你看他弹出来的问题,100以上的数据,在他本身脚本里面就有了。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42448
在线时间
7603 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

4
发表于 2010-8-25 12:15:20 | 只看该作者
回复 李梦遥 的帖子


    我是手机党,看不见。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

神仙

梦石
0
星屑
69
在线时间
596 小时
注册时间
2007-5-14
帖子
1289
5
 楼主| 发表于 2010-8-25 12:16:47 | 只看该作者
回复


    我是手机党,看不见。
fux2 发表于 2010-8-25 12:15



寒,问题被我解决了,原来 ,突破限制的脚本得要插在MAIN之前,而且还得插入两行空的,把脚本弄到中间,才能完美运行……谢谢你的回答,结贴咯。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 23:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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