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

Project1

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

[已经过期] 关于 空轨菜单 的问题 在下脚本盲 求指导

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2012-2-15
帖子
9
跳转到指定楼层
1
发表于 2012-2-18 21:00:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
用的是这个:http://rpg.blue/thread-135748-1-1.html

新建人物,然后执行事件

人物id在10以内没问题,可是人物id在十以上的时候
就会出现这个情况

不知道是怎么回事。。。
在下是个新手,脚本神马的一窍不通,所以也不会弄。。。
只好在这里发帖求助了。。。
因为权限太低没办法把工程传上来。。。所以麻烦各位前辈去下载原帖的附件再自己新建角色了。。。
拜托求解。。。

附上脚本:
  1. #==============================================================================
  2. # ■ Game_Actor 追加
  3. #------------------------------------------------------------------------------
  4. #    角色结晶槽的升级接口函数为:
  5. #    <Game_Actor实例>.cs_levelup(结晶槽ID, 升级幅度) 升级幅度省略则为1
  6. #==============================================================================
  7. class Game_Actor < Game_Battler
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义实例变量
  10.   #--------------------------------------------------------------------------
  11.   attr_reader   :crystal_element            # 结晶槽的属性
  12.   attr_reader   :crystal_total              # 结晶槽的能量
  13.   attr_reader   :crystal_level              # 结晶槽等级 crystal_slot
  14.   attr_reader   :slot                       # 结晶槽装备位
  15.   attr_reader   :skill                      # 通过结晶装备所掌握的技能≠skills
  16.   attr_reader   :state                      # 通过结晶装备所附加的状态≠states
  17.   attr_accessor :cp_store                   # 添加怒气槽
  18.   attr_accessor :skill_S                    # 添加爆发技能
  19.   attr_reader   :crystal_types              # 添加同种回路不可多个装备记录用数组
  20.   attr_reader   :battle_formation           # 角色的战斗队列
  21.   #--------------------------------------------------------------------------
  22.   # ● 设置
  23.   #     actor_id : 角色 ID
  24.   #--------------------------------------------------------------------------
  25.   alias xpold_setup setup
  26.   def setup(actor_id)
  27.     xpold_setup(actor_id)
  28.     @skill_S = nil
  29.     @cp_store = 0
  30.     @crystal_element = CRYSTAL::SLOT_ELEMENT[actor_id].clone
  31.     @crystal_total = []
  32.     @crystal_types = [0]
  33.     for i in 0...CRYSTAL::SLOT_LINE[actor_id].size
  34.       @crystal_total[i] = Array.new(CRYSTAL::ELE_NUMBER,0)
  35.     end
  36.     @crystal_level = CRYSTAL::SLOT_LEVEL[actor_id].clone
  37.    
  38.     @slot = Array.new(8,0)

  39.     @skill = []
  40.     for i in 0...CRYSTAL::SLOT_LINE[actor_id].size
  41.       @skill[i] = []
  42.     end
  43.     @state = []
  44.     if actor_id < 35
  45.       @battle_formation = actor_id
  46.     else
  47.       @battle_formation = actor_id%35
  48.     end
  49.   end
  50.   def gain_cp(val=0)
  51.     @cp_store += val
  52.     if @cp_store > 200
  53.       @cp_store = 200
  54.     end
  55.     if @cp_store <0
  56.       @cp_store = 0
  57.     end
  58.   end
  59.   def battle_formation=(battle_formation)
  60.     @battle_formation = battle_formation
  61.   end
  62.   
  63.   #--------------------------------------------------------------------------
  64.   # ● 获取所有回路中某种结晶能量的最大值
  65.   #     type : 某种结晶能量
  66.   #--------------------------------------------------------------------------
  67.   def ce_total(type)
  68.     return -1 if id > CRYSTAL::ELE_NUMBER or id < 1
  69.     result = 0
  70.     for crystal_line in @crystal_total
  71.       result = crystal_line[type - 1] if crystal_line[type - 1] > result
  72.     end
  73.     return result
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 装备结晶石
  77.   #     type : 结晶槽ID
  78.   #     id   : 结晶石ID
  79.   #--------------------------------------------------------------------------
  80.   def ce_equip(type, id)
  81.     return false unless ce_can_equip(type, id)
  82.    
  83.     if id == 0 or $game_party.armor_number(id) > 0
  84.       #取下当前回路-------
  85.         update_auto_state_($data_armors[@slot[type]], $data_armors[id])
  86.         $game_party.gain_armor(@slot[type], 1)
  87.         #取消当前回路的种类的限制
  88.         @crystal_types.delete($data_armors[@slot[type]].cry_type) if $data_armors[@slot[type]] != nil
  89.          
  90.         unless @slot[type] == 0
  91.           for j in 0...CRYSTAL::ELE_NUMBER
  92.             for i in self.which_line?(type)
  93.               @crystal_total[i][j] -= $data_armors[@slot[type]].crystal_element[j]
  94.             end
  95.           end
  96.         end
  97.       #-------------------
  98.       #装备上新的回路-----
  99.       @slot[type] = id
  100.       $game_party.lose_armor(id, 1)
  101.       unless @slot[type] == 0
  102.         for j in 0...CRYSTAL::ELE_NUMBER
  103.           for i in self.which_line?(type)
  104.             @crystal_total[i][j] += $data_armors[@slot[type]].crystal_element[j]
  105.           end
  106.         end
  107.       end
  108.       for i in self.which_line?(type)
  109.         new_total = @crystal_total[i].clone
  110.         self.learn_new(new_total,i)
  111.       end
  112.    
  113.       for i in @skills
  114.         if $data_skills[i] != nil
  115.           if not $data_skills[i].element_set.include?(20)# 金光华
  116.             @skills.delete(i)     # 金光华
  117.           end
  118.         end
  119.       end
  120.    
  121.       for i in @skill
  122.         @skills |= i
  123.       end
  124.       #-------------------
  125.       #增加新的回路的种类限制
  126.       if id != 0 and $data_armors[id].cry_type >= 0
  127.         @crystal_types.push($data_armors[id].cry_type)
  128.       end

  129.     end
  130.     return true
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● 学习新技能
  134.   #     new   : 当前所在回路的结晶槽属性值
  135.   #     line  : 当前所在的回路编号
  136.   #--------------------------------------------------------------------------
  137.   def learn_new(new,line)
  138.     for i in RPG::SKILL_BEGIN...$data_skills.size
  139.       next if $data_skills[i].name.nil?
  140.       flag = true
  141.       for j in 0...CRYSTAL::ELE_NUMBER
  142.         flag &= $data_skills[i].require_element[j] <= new[j]
  143.       end
  144.       if flag
  145.         @skill[line] |= [i]
  146.       else
  147.         @skill[line].delete(i)
  148.       end
  149.     end
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● 检测某结晶槽是否可装备某结晶石
  153.   #     type : 结晶槽ID
  154.   #     id   : 结晶石ID
  155.   #--------------------------------------------------------------------------
  156.   def ce_can_equip(type, id)
  157.     return true if id == 0
  158.     return false  if $data_armors[id] != nil and @crystal_types.include?($data_armors[id].cry_type) and (slot[type] == 0 or $data_armors[slot[type]].cry_type != $data_armors[id].cry_type)
  159.    
  160.     if @crystal_element[type - 1] == 0
  161.       return $data_armors[id].level <= @crystal_level[type - 1]
  162.     else
  163.       return (($data_armors[id].element == @crystal_element[type - 1]) and ($data_armors[id].level <= @crystal_level[type - 1]))
  164.     end
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ● 结晶槽升级
  168.   #     id   : 结晶槽ID
  169.   #     up   : 升级幅度,默认为1
  170.   #     PS:最高3级
  171.   #--------------------------------------------------------------------------
  172.   def cs_levelup(id, up = 1)
  173.     @crystal_level[id] += up
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ● 检测技能是否可用,与默认方法略微不同
  177.   #     skill_id   : 技能ID
  178.   #--------------------------------------------------------------------------
  179.   def skill_can_use?(skill_id)
  180.     return super
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ● 检测指定结晶槽所在的回路编号
  184.   #     id   : 结晶槽ID
  185.   #--------------------------------------------------------------------------
  186.   def which_line?(id)
  187.     result = []
  188.     for i in 0...CRYSTAL::SLOT_LINE[@actor_id].size
  189.       result.push(i) if CRYSTAL::SLOT_LINE[@actor_id][i].include?(id)
  190.     end
  191.     return result
  192.   end
  193.   #--------------------------------------------------------------------------
  194.   # ● skills 追加方法
  195.   #--------------------------------------------------------------------------
  196.   def skills=(skills)
  197.     @skills = skills
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 更新自动状态
  201.   #     old_armor : 卸下防具
  202.   #     new_armor : 装备防具
  203.   #--------------------------------------------------------------------------
  204.   def update_auto_state_(old_armor, new_armor)
  205.     # 强制解除卸下防具的自动状态
  206.     if old_armor != nil and old_armor.auto_state_id != 0
  207.       remove_state_(old_armor.auto_state_id, true)
  208.     end
  209.     # 强制附加装备防具的自动状态
  210.     if new_armor != nil and new_armor.auto_state_id != 0
  211.       add_state_(new_armor.auto_state_id, true)
  212.     end
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ● 附加状态
  216.   #     state_id : 状态 ID
  217.   #     force    : 强制附加标志 (处理自动状态时使用)
  218.   #--------------------------------------------------------------------------
  219.   def add_state_(state_id, force = false)
  220.     # 无效状态的情况下
  221.     if $data_states[state_id] == nil
  222.       # 过程结束
  223.       return
  224.     end
  225.     @states.push(state_id)
  226.     # 检查 HP 及 SP 的最大值
  227.     @hp = [@hp, self.maxhp].min
  228.     @sp = [@sp, self.maxsp].min
  229.   end
  230.   #--------------------------------------------------------------------------
  231.   # ● 解除状态
  232.   #     state_id : 状态 ID
  233.   #     force    : 强制解除标志 (处理自动状态时使用)
  234.   #--------------------------------------------------------------------------
  235.   def remove_state_(state_id, force = false)
  236.     @states.delete_at(@states.index(state_id))
  237.     # 检查 HP 及 SP 的最大值
  238.     @hp = [@hp, self.maxhp].min
  239.     @sp = [@sp, self.maxsp].min
  240.   end
  241.   alias old_str base_str
  242.   #--------------------------------------------------------------------------
  243.   # ● 获取基本力量
  244.   #--------------------------------------------------------------------------
  245.   def base_str
  246.     n = old_str
  247.     for i in 1..7
  248.       n += $data_armors[@slot[i]] != nil ? $data_armors[@slot[i]].str_plus : 0
  249.     end
  250.     return [[n, 1].max, 999].min
  251.   end
  252.   alias old_dex base_dex
  253.   #--------------------------------------------------------------------------
  254.   # ● 获取基本灵巧
  255.   #--------------------------------------------------------------------------
  256.   def base_dex
  257.     n = old_dex
  258.     for i in 1..7
  259.       n += $data_armors[@slot[i]] != nil ? $data_armors[@slot[i]].dex_plus : 0
  260.     end
  261.     return [[n, 1].max, 999].min
  262.   end
  263.   alias old_agi base_agi
  264.   #--------------------------------------------------------------------------
  265.   # ● 获取基本速度
  266.   #--------------------------------------------------------------------------
  267.   def base_agi
  268.     n = old_agi
  269.     for i in 1..7
  270.       n += $data_armors[@slot[i]] != nil ? $data_armors[@slot[i]].agi_plus : 0
  271.     end
  272.     return [[n, 1].max, 999].min
  273.   end
  274.   alias old_int base_int
  275.   #--------------------------------------------------------------------------
  276.   # ● 获取基本魔力
  277.   #--------------------------------------------------------------------------
  278.   def base_int
  279.     n = old_int
  280.     for i in 1..7
  281.       n += $data_armors[@slot[i]] != nil ? $data_armors[@slot[i]].int_plus : 0
  282.     end
  283.     return [[n, 1].max, 999].min
  284.   end
  285.   alias old_pdef base_pdef
  286.   #--------------------------------------------------------------------------
  287.   # ● 获取基本物理防御
  288.   #--------------------------------------------------------------------------
  289.   def base_pdef
  290.     pdef = old_pdef
  291.     for i in 1..7
  292.       pdef += $data_armors[@slot[i]] != nil ? $data_armors[@slot[i]].pdef : 0
  293.     end
  294.     return pdef
  295.   end
  296.   alias old_mdef base_mdef
  297.   #--------------------------------------------------------------------------
  298.   # ● 获取基本魔法防御
  299.   #--------------------------------------------------------------------------
  300.   def base_mdef
  301.     mdef = old_mdef
  302.     for i in 1..7
  303.       mdef += $data_armors[@slot[i]] != nil ? $data_armors[@slot[i]].mdef : 0
  304.     end
  305.     return mdef
  306.   end
  307.   alias old_eva base_eva
  308.   #--------------------------------------------------------------------------
  309.   # ● 获取基本回避修正
  310.   #--------------------------------------------------------------------------
  311.   def base_eva
  312.     eva = old_eva
  313.     for i in 1..7
  314.       eva += $data_armors[@slot[i]] != nil ? $data_armors[@slot[i]].eva : 0
  315.     end
  316.     return eva
  317.   end
  318. end
复制代码


‘‘──529708851于2012-2-21 19:49补充以下内容

没人么。。。求解啊。。。
’’

Lv1.梦旅人

梦石
0
星屑
161
在线时间
629 小时
注册时间
2012-6-9
帖子
1321
2
发表于 2012-7-6 11:35:48 | 只看该作者
无解


‘‘──c248611于2012-7-6 11:37补充以下内容:

因为你加太多脚本,弄它崩溃了。
要重来
这是我做的
[url]http://rpg.blue/thread-238819-1-1.html[/url]
’’
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 12:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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