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

Project1

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

[已经解决] 求纠错

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
37 小时
注册时间
2015-2-13
帖子
126
跳转到指定楼层
1
发表于 2015-2-23 09:54:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 布冷.逆天 于 2015-2-23 10:13 编辑

@芯☆淡茹水 @RyanBern @taroxd 错误类型 :
        方法未定义
错误信息 :
        Section090:16:in `Add_hp'undefined method `actors' for #<Game_Party:0x6ee1360>
错误可能发生的相关位置 :
        Game_Interpreter : 第 1684 行 : command_355
        ▼ 模块 : 第  行
        Game_Interpreter : 第 388 行 : eval
        Game_Interpreter : 第 1684 行 : command_355
        Game_Interpreter : 第 388 行 : execute_command
        Game_Interpreter : 第 134 行 : update
        Game_Interpreter : 第 99 行 : loop
        Game_Interpreter : 第 136 行 : update
        Scene_Map : 第 56 行 : update
        Scene_Base : 第 19 行 : main
        Scene_Base : 第 16 行 : loop
        Scene_Base : 第 21 行 : main
        错误纠正 : 第 37 行 : run
        错误纠正 : 第 151 行
-------------66RPG-------------------
RUBY 代码复制
  1. def Add_hp
  2.     add_hp = 1000  # 预设最大加血量
  3.     add_hp = $game_party.actors[0].maxhp -  $game_party.actors[0].hp
  4.     if $game_party.gold < add_hp or $game_party.actors[0].maxhp == $game_party.actors[0].hp
  5.       tip = $game_party.gold < add_hp ? "金钱不够!" : "你已经满血了"
  6.       p tip
  7.       return
  8.     end
  9.     $game_party.actors[0].hp += add_hp
  10.     $game_party.lose_gold -= add_hp
  11.    p "交换完成!"
  12.   end
  13. end
  

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2015-2-23 10:01:02 | 只看该作者
不熟悉 VX,你看一下 Game_Party 的定义吧。可能是 members 啥的

另外这个问题修好之后预计第 10 行报错

点评

$game_party.members[0].maxhp  发表于 2015-2-23 10:18
这都不知道的话还是先别写脚本了……  发表于 2015-2-23 10:16
是members,可是要这怎么样表示!  发表于 2015-2-23 10:14
$game_party 同伴 Game_Party  发表于 2015-2-23 10:07
不熟悉 VX,你看一下 Game_Party 的定义吧。  发表于 2015-2-23 10:05

评分

参与人数 1星屑 +100 收起 理由
丿梁丶小柒 + 100 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
37 小时
注册时间
2015-2-13
帖子
126
3
 楼主| 发表于 2015-2-23 10:07:38 | 只看该作者
  1. #==============================================================================
  2. # ■ Game_Party
  3. #------------------------------------------------------------------------------
  4. #  处理同伴的类。包含金钱以及物品的信息。本类的实例请参考 $game_party。
  5. #==============================================================================

  6. class Game_Party < Game_Unit
  7.   #--------------------------------------------------------------------------
  8.   # ● 常量
  9.   #--------------------------------------------------------------------------
  10.   MAX_MEMBERS = 4                         # 同伴最大数量
  11.   #--------------------------------------------------------------------------
  12.   # ● 定义实例变量
  13.   #--------------------------------------------------------------------------
  14.   attr_reader   :gold                     # 金钱数量
  15.   attr_reader   :steps                    # 步数
  16.   attr_accessor :last_item_id             # 光标位置记忆:物品
  17.   attr_accessor :last_actor_index         # 光标位置记忆:角色
  18.   attr_accessor :last_target_index        # 光标位置记忆:目标
  19.   #--------------------------------------------------------------------------
  20.   # ● 初始化对像
  21.   #--------------------------------------------------------------------------
  22.   def initialize
  23.     super
  24.     @gold = 0
  25.     @steps = 0
  26.     @last_item_id = 0
  27.     @last_actor_index = 0
  28.     @last_target_index = 0
  29.     @actors = []      # 队员(角色ID)
  30.     @items = {}       # 物品哈希列表(物品ID)
  31.     @weapons = {}     # 物品哈希列表(武器ID)
  32.     @armors = {}      # 物品哈希列表(防具ID)
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● 获取队员
  36.   #--------------------------------------------------------------------------
  37.   def members
  38.     result = []
  39.     for i in @actors
  40.       result.push($game_actors[i])
  41.     end
  42.     return result
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● 获取物品数组(包括武器和防具)
  46.   #--------------------------------------------------------------------------
  47.   def items
  48.     result = []
  49.     for i in @items.keys.sort
  50.       result.push($data_items[i]) if @items[i] > 0
  51.     end
  52.     for i in @weapons.keys.sort
  53.       result.push($data_weapons[i]) if @weapons[i] > 0
  54.     end
  55.     for i in @armors.keys.sort
  56.       result.push($data_armors[i]) if @armors[i] > 0
  57.     end
  58.     return result
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 初始队员设置
  62.   #--------------------------------------------------------------------------
  63.   def setup_starting_members
  64.     @actors = []
  65.     for i in $data_system.party_members
  66.       @actors.push(i)
  67.     end
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 获取队伍名称
  71.   #    只有一人时,返回主角名称。
  72.   #    多人时则返回 "XX的队伍"(按照在Vocab里的设定)。
  73.   #--------------------------------------------------------------------------
  74.   def name
  75.     if @actors.size == 0
  76.       return ''
  77.     elsif @actors.size == 1
  78.       return members[0].name
  79.     else
  80.       return sprintf(Vocab::PartyName, members[0].name)
  81.     end
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 战斗测试队伍设置
  85.   #--------------------------------------------------------------------------
  86.   def setup_battle_test_members
  87.     @actors = []
  88.     for battler in $data_system.test_battlers
  89.       actor = $game_actors[battler.actor_id]
  90.       actor.change_level(battler.level, false)
  91.       actor.change_equip_by_id(0, battler.weapon_id, true)
  92.       actor.change_equip_by_id(1, battler.armor1_id, true)
  93.       actor.change_equip_by_id(2, battler.armor2_id, true)
  94.       actor.change_equip_by_id(3, battler.armor3_id, true)
  95.       actor.change_equip_by_id(4, battler.armor4_id, true)
  96.       actor.recover_all
  97.       @actors.push(actor.id)
  98.     end
  99.     @items = {}
  100.     for i in 1...$data_items.size
  101.       if $data_items[i].battle_ok?
  102.         @items[i] = 99 unless $data_items[i].name.empty?
  103.       end
  104.     end
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 获取最高等级
  108.   #--------------------------------------------------------------------------
  109.   def max_level
  110.     level = 0
  111.     for i in @actors
  112.       actor = $game_actors[i]
  113.       level = actor.level if level < actor.level
  114.     end
  115.     return level
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 队员加入
  119.   #     actor_id : 角色ID
  120.   #--------------------------------------------------------------------------
  121.   def add_actor(actor_id)
  122.     if @actors.size < MAX_MEMBERS and not @actors.include?(actor_id)
  123.       @actors.push(actor_id)
  124.       $game_player.refresh
  125.     end
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 队员离开
  129.   #     actor_id : 角色ID
  130.   #--------------------------------------------------------------------------
  131.   def remove_actor(actor_id)
  132.     @actors.delete(actor_id)
  133.     $game_player.refresh
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 获得/损失金钱
  137.   #     n : 金钱数量
  138.   #--------------------------------------------------------------------------
  139.   def gain_gold(n)
  140.     @gold = [[@gold + n, 0].max, 9999999].min
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ● 损失金钱
  144.   #     n : 金钱数量
  145.   #--------------------------------------------------------------------------
  146.   def lose_gold(n)
  147.     gain_gold(-n)
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # ● 增加步数
  151.   #--------------------------------------------------------------------------
  152.   def increase_steps
  153.     @steps += 1
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 获取物品持有数量
  157.   #     item : 物品
  158.   #--------------------------------------------------------------------------
  159.   def item_number(item)
  160.     case item
  161.     when RPG::Item
  162.       number = @items[item.id]
  163.     when RPG::Weapon
  164.       number = @weapons[item.id]
  165.     when RPG::Armor
  166.       number = @armors[item.id]
  167.     end
  168.     return number == nil ? 0 : number
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ● 判断是否拥有某物品
  172.   #     item          : 物品
  173.   #     include_equip : 包括已装备的物品
  174.   #--------------------------------------------------------------------------
  175.   def has_item?(item, include_equip = false)
  176.     if item_number(item) > 0
  177.       return true
  178.     end
  179.     if include_equip
  180.       for actor in members
  181.         return true if actor.equips.include?(item)
  182.       end
  183.     end
  184.     return false
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● 获得/损失物品
  188.   #     item          : 物品
  189.   #     n             : 数量
  190.   #     include_equip : 包括已装备的物品
  191.   #--------------------------------------------------------------------------
  192.   def gain_item(item, n, include_equip = false)
  193.     number = item_number(item)
  194.     case item
  195.     when RPG::Item
  196.       @items[item.id] = [[number + n, 0].max, 99].min
  197.     when RPG::Weapon
  198.       @weapons[item.id] = [[number + n, 0].max, 99].min
  199.     when RPG::Armor
  200.       @armors[item.id] = [[number + n, 0].max, 99].min
  201.     end
  202.     n += number
  203.     if include_equip and n < 0
  204.       for actor in members
  205.         while n < 0 and actor.equips.include?(item)
  206.           actor.discard_equip(item)
  207.           n += 1
  208.         end
  209.       end
  210.     end
  211.   end
  212.   #--------------------------------------------------------------------------
  213.   # ● 损失物品
  214.   #     item          : 物品
  215.   #     n             : 数量
  216.   #     include_equip : 包括已装备的物品
  217.   #--------------------------------------------------------------------------
  218.   def lose_item(item, n, include_equip = false)
  219.     gain_item(item, -n, include_equip)
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ● 消耗物品
  223.   #     item : 物品
  224.   #    若所使用的物品为消耗品,则减少物品数量减一
  225.   #--------------------------------------------------------------------------
  226.   def consume_item(item)
  227.     if item.is_a?(RPG::Item) and item.consumable
  228.       lose_item(item, 1)
  229.     end
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # ● 判断物品可以使用
  233.   #     item_id : 物品 ID
  234.   #--------------------------------------------------------------------------
  235.   def item_can_use?(item)
  236.     return false unless item.is_a?(RPG::Item)
  237.     return false if item_number(item) == 0
  238.     if $game_temp.in_battle
  239.       return item.battle_ok?
  240.     else
  241.       return item.menu_ok?
  242.     end
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● 可以输入命令的判定
  246.   #    自动战斗则视为可以输入命令
  247.   #--------------------------------------------------------------------------
  248.   def inputable?
  249.     for actor in members
  250.       return true if actor.inputable?
  251.     end
  252.     return false
  253.   end
  254.   #--------------------------------------------------------------------------
  255.   # ● 判断是否全灭
  256.   #--------------------------------------------------------------------------
  257.   def all_dead?
  258.     if @actors.size == 0 and not $game_temp.in_battle
  259.       return false
  260.     end
  261.     return existing_members.empty?
  262.   end
  263.   #--------------------------------------------------------------------------
  264.   # ● 主角在地图上走一步的效果
  265.   #--------------------------------------------------------------------------
  266.   def on_player_walk
  267.     for actor in members
  268.       if actor.slip_damage?
  269.         actor.hp -= 1 if actor.hp > 1   # 持续伤害
  270.         $game_map.screen.start_flash(Color.new(255,0,0,64), 4)
  271.       end
  272.       if actor.auto_hp_recover and actor.hp > 0
  273.         actor.hp += 1                   # 体力自动回复
  274.       end
  275.     end
  276.   end
  277.   #--------------------------------------------------------------------------
  278.   # ● 执行自动回复(回合结束时调用)
  279.   #--------------------------------------------------------------------------
  280.   def do_auto_recovery
  281.     for actor in members
  282.       actor.do_auto_recovery
  283.     end
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ● 移除战斗状态(战斗结束时调用)
  287.   #--------------------------------------------------------------------------
  288.   def remove_states_battle
  289.     for actor in members
  290.       actor.remove_states_battle
  291.     end
  292.   end
  293. end
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 18:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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