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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 最初的梦想
打印 上一主题 下一主题

如何使一个游戏里面有两组人不同的物品?

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

悔恨的天使

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-26
帖子
726
11
发表于 2008-3-15 09:52:19 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
7 小时
注册时间
2008-2-20
帖子
27
12
 楼主| 发表于 2008-3-15 20:48:55 | 只看该作者
class Game_Party
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_reader   :actors                   # 角色
  attr_reader   :gold                     # 金钱
  attr_reader   :steps                    # 步数
  attr_accessor :weapons
  attr_accessor :items
  attr_accessor :armors

之后在“事件指令”里面添加了“脚本”
$game_variables[1] = $game_party.weapons.clone
$game_variables[2] = $game_party.armors.clone
$game_variables[3] = $game_party.items.clone
备份了东西,然后在
在另外的“事件指令”里面添加了“脚本”
$game_party.weapons = $game_variables[1]
$game_party.armors = $game_variables[2]
$game_party.items = $game_variables[3]

没有反映~~!!!!!!!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
7 小时
注册时间
2008-2-20
帖子
27
13
 楼主| 发表于 2008-3-15 20:54:12 | 只看该作者
以下引用Iselia雪于2008-3-15 1:52:19的发言:


以下引用艾铃于2008-3-15 0:42:31的发言:

怎么这么麻烦喵.
把Scene_Item复制一份出来两个Scene读取数据库的不同部分就好了咩~修改一下Scene_Menu,用开关来控制显示两个不同的Scene_Item~

可以看看这个:http://rpg.blue/web/htm/news428.htm


这...能行吗?

还是用$a = $game_party.items记录

这个还原吧。
for i in $a.keys
$game_party.get_item(i,$a)
end



这些怎样做的???
可不可以复制一些代码让我看一看?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

14
发表于 2008-3-15 21:03:04 | 只看该作者
那当然没有了,你用的不本来就是同一套物品么……=         =
备份了物品就该清空了吧……
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1035
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

15
发表于 2008-3-15 21:25:51 | 只看该作者
這樣吧……好像比較簡單(雖然方法比較幼稚)


  1. class Game_Party
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对像
  4.   #--------------------------------------------------------------------------
  5.   alias ori_ini initialize
  6.   def initialize
  7.     ori_ini
  8.     @gold_w0 = 0
  9.     @gold_w1 = 0
  10.     @gold_w2 = 0
  11.     @steps_w0 = 0
  12.     @steps_w1 = 0
  13.     @steps_w2 = 0
  14.     @items_w0 = {}
  15.     @items_w1 = {}
  16.     @items_w2 = {}
  17.     @weapons_w0 = {}
  18.     @weapons_w1 = {}
  19.     @weapons_w2 = {}
  20.     @armors_w0 = {}
  21.     @armors_w1 = {}
  22.     @armors_w2 = {}
  23.     @world_id = 1
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 增加金钱 (减少)
  27.   #     n : 金额
  28.   #--------------------------------------------------------------------------
  29.   def gain_gold(n)
  30.     case @world_id
  31.     when 0
  32.       @gold = [[@gold + n, 0].max, 9999999].min
  33.       @gold_w0 = @steps
  34.     when 1
  35.       @gold = [[@gold + n, 0].max, 9999999].min
  36.       @gold_w1 = @steps
  37.       @gold_w0 = [[@gold_w0 + n, 0].max, 9999999].min
  38.     when 2
  39.       @gold = [[@gold + n, 0].max, 9999999].min
  40.       @gold_w2 = @steps
  41.       @gold_w0 = [[@gold_w0 + n, 0].max, 9999999].min
  42.     end
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● 增加步数
  46.   #--------------------------------------------------------------------------
  47.   def increase_steps
  48.     case @world_id
  49.     when 0
  50.       @steps = [@steps + 1, 9999999].min
  51.       @steps_w0 = @steps
  52.     when 1
  53.       @steps = [@steps + 1, 9999999].min
  54.       @steps_w1 = @steps
  55.       @steps_w0 = [@steps_w0 + 1, 9999999].min
  56.     when 2
  57.       @steps = [@steps + 1, 9999999].min
  58.       @steps_w2 = @steps
  59.       @steps_w0 = [@steps_w0 + 1, 9999999].min
  60.     end
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 增加物品 (减少)
  64.   #     item_id : 物品 ID
  65.   #     n       : 个数
  66.   #--------------------------------------------------------------------------
  67.   def gain_item(item_id, n)
  68.     # 更新 hash 的个数数据
  69.     if item_id > 0
  70.       case @world_id
  71.       when 0
  72.         @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
  73.         @items_w0[item_id] = @items[item_id]
  74.       when 1
  75.         @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
  76.         @items_w1[item_id] = @items[item_id]
  77.         @items_w0[item_id] = @items_w0[item_id].nil? ? n : [[@items_w0[item_id] + n, 0].max, 99].min
  78.       when 2
  79.         @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
  80.         @items_w2[item_id] = @items[item_id]
  81.         @items_w0[item_id] = @items_w0[item_id].nil? ? n : [[@items_w0[item_id] + n, 0].max, 99].min
  82.       end
  83.     end
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # ● 增加武器 (减少)
  87.   #     weapon_id : 武器 ID
  88.   #     n         : 个数
  89.   #--------------------------------------------------------------------------
  90.   def gain_weapon(weapon_id, n)
  91.     # 更新 hash 的个数数据
  92.     if weapon_id > 0
  93.       case @world_id
  94.       when 0
  95.         @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  96.         @weapons_w0[weapon_id] = @weapons[weapon_id]
  97.       when 1
  98.         @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  99.         @weapons_w1[weapon_id] = @weapons[weapon_id]
  100.         @weapons_w0[weapon_id] = @weapons_w0[weapon_id].nil? ? n : [[@weapons_w0[weapon_id] + n, 0].max, 99].min
  101.       when 2
  102.         @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  103.         @weapons_w2[weapon_id] = @armors[armor_id]
  104.         @weapons_w0[weapon_id] = @weapons_w0[weapon_id].nil? ? n : [[@weapons_w0[weapon_id] + n, 0].max, 99].min
  105.       end
  106.     end
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ● 增加防具 (减少)
  110.   #     armor_id : 防具 ID
  111.   #     n        : 个数
  112.   #--------------------------------------------------------------------------
  113.   def gain_armor(armor_id, n)
  114.     # 更新 hash 的个数数据
  115.     if armor_id > 0
  116.       case @world_id
  117.       when 0
  118.         @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
  119.         @armors_w0[armor_id] = @armors[armor_id]
  120.       when 1
  121.         @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
  122.         @armors_w1[armor_id] = @armors[armor_id]
  123.         @armors_w0[armor_id] = @armors_w0[armor_id].nil? ? n : [[@armors_w0[armor_id] + n, 0].max, 99].min
  124.       when 2
  125.         @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
  126.         @armors_w2[armor_id] = @armors[armor_id]
  127.         @armors_w0[armor_id] = @armors_w0[armor_id].nil? ? n : [[@armors_w0[armor_id] + n, 0].max, 99].min
  128.       end
  129.     end
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 世界之轉換 (n)
  133.   #     n        : 世界ID
  134.   #--------------------------------------------------------------------------
  135.   def world_change(n)
  136.     @world_id = n
  137.     case n
  138.     when 0
  139.       @gold = @gold_w0
  140.       @steps = @steps_w0
  141.       @items = @items_w0
  142.       @weapons = @weapons_w0
  143.       @armors = @armors_w0
  144.     when 1
  145.       @gold = @gold_w1
  146.       @steps = @steps_w1
  147.       @items = @items_w1
  148.       @weapons = @weapons_w1
  149.       @armors = @armors_w1
  150.     when 2
  151.       @gold = @gold_w2
  152.       @steps = @steps_w2
  153.       @items = @items_w2
  154.       @weapons = @weapons_w2
  155.       @armors = @armors_w2
  156.     end
  157.   end
  158. end
复制代码


腳本放在main之前
世界的轉換調用方法$game_party.world_change(n)
n是世界的ID,0就是全部物品相加,1就是第一個世界,2就是第二個世界

PS。那個因爲順手,把步數,金錢,武器,物品,防具全部數據都根據世界的不同分開了。如果不需要就删去吧
系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-3-15
帖子
255
16
发表于 2008-3-15 21:50:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
7 小时
注册时间
2008-2-20
帖子
27
17
 楼主| 发表于 2008-3-15 23:28:56 | 只看该作者
以下引用禾西于2008-3-15 13:25:51的发言:

這樣吧……好像比較簡單(雖然方法比較幼稚)

class Game_Party
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  alias ori_ini initialize
  def initialize
    ori_ini
    @gold_w0 = 0
    @gold_w1 = 0
    @gold_w2 = 0
    @steps_w0 = 0
    @steps_w1 = 0
    @steps_w2 = 0
    @items_w0 = {}
    @items_w1 = {}
    @items_w2 = {}
    @weapons_w0 = {}
    @weapons_w1 = {}
    @weapons_w2 = {}
    @armors_w0 = {}
    @armors_w1 = {}
    @armors_w2 = {}
    @world_id = 1
  end
  #--------------------------------------------------------------------------
  # ● 增加金钱 (减少)
  #     n : 金额
  #--------------------------------------------------------------------------
  def gain_gold(n)
    case @world_id
    when 0
      @gold = [[@gold + n, 0].max, 9999999].min
      @gold_w0 = @steps
    when 1
      @gold = [[@gold + n, 0].max, 9999999].min
      @gold_w1 = @steps
      @gold_w0 = [[@gold_w0 + n, 0].max, 9999999].min
    when 2
      @gold = [[@gold + n, 0].max, 9999999].min
      @gold_w2 = @steps
      @gold_w0 = [[@gold_w0 + n, 0].max, 9999999].min
    end
  end
  #--------------------------------------------------------------------------
  # ● 增加步数
  #--------------------------------------------------------------------------
  def increase_steps
    case @world_id
    when 0
      @steps = [@steps + 1, 9999999].min
      @steps_w0 = @steps
    when 1
      @steps = [@steps + 1, 9999999].min
      @steps_w1 = @steps
      @steps_w0 = [@steps_w0 + 1, 9999999].min
    when 2
      @steps = [@steps + 1, 9999999].min
      @steps_w2 = @steps
      @steps_w0 = [@steps_w0 + 1, 9999999].min
    end
  end
  #--------------------------------------------------------------------------
  # ● 增加物品 (减少)
  #     item_id : 物品 ID
  #     n       : 个数
  #--------------------------------------------------------------------------
  def gain_item(item_id, n)
    # 更新 hash 的个数数据
    if item_id > 0
      case @world_id
      when 0
        @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
        @items_w0[item_id] = @items[item_id]
      when 1
        @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
        @items_w1[item_id] = @items[item_id]
        @items_w0[item_id] = @items_w0[item_id].nil? ? n : [[@items_w0[item_id] + n, 0].max, 99].min
      when 2
        @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
        @items_w2[item_id] = @items[item_id]
        @items_w0[item_id] = @items_w0[item_id].nil? ? n : [[@items_w0[item_id] + n, 0].max, 99].min
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 增加武器 (减少)
  #     weapon_id : 武器 ID
  #     n         : 个数
  #--------------------------------------------------------------------------
  def gain_weapon(weapon_id, n)
    # 更新 hash 的个数数据
    if weapon_id > 0
      case @world_id
      when 0
        @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
        @weapons_w0[weapon_id] = @weapons[weapon_id]
      when 1
        @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
        @weapons_w1[weapon_id] = @weapons[weapon_id]
        @weapons_w0[weapon_id] = @weapons_w0[weapon_id].nil? ? n : [[@weapons_w0[weapon_id] + n, 0].max, 99].min
      when 2
        @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
        @weapons_w2[weapon_id] = @armors[armor_id]
        @weapons_w0[weapon_id] = @weapons_w0[weapon_id].nil? ? n : [[@weapons_w0[weapon_id] + n, 0].max, 99].min
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 增加防具 (减少)
  #     armor_id : 防具 ID
  #     n        : 个数
  #--------------------------------------------------------------------------
  def gain_armor(armor_id, n)
    # 更新 hash 的个数数据
    if armor_id > 0
      case @world_id
      when 0
        @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
        @armors_w0[armor_id] = @armors[armor_id]
      when 1
        @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
        @armors_w1[armor_id] = @armors[armor_id]
        @armors_w0[armor_id] = @armors_w0[armor_id].nil? ? n : [[@armors_w0[armor_id] + n, 0].max, 99].min
      when 2
        @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
        @armors_w2[armor_id] = @armors[armor_id]
        @armors_w0[armor_id] = @armors_w0[armor_id].nil? ? n : [[@armors_w0[armor_id] + n, 0].max, 99].min
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 世界之轉換 (n)
  #     n        : 世界ID
  #--------------------------------------------------------------------------
  def world_change(n)
    @world_id = n
    case n
    when 0
      @gold = @gold_w0
      @steps = @steps_w0
      @items = @items_w0
      @weapons = @weapons_w0
      @armors = @armors_w0
    when 1
      @gold = @gold_w1
      @steps = @steps_w1
      @items = @items_w1
      @weapons = @weapons_w1
      @armors = @armors_w1
    when 2
      @gold = @gold_w2
      @steps = @steps_w2
      @items = @items_w2
      @weapons = @weapons_w2
      @armors = @armors_w2
    end
  end
end



腳本放在main之前
世界的轉換調用方法$game_party.world_change(n)
n是世界的ID,0就是全部物品相加,1就是第一個世界,2就是第二個世界

PS。那個因爲順手,把步數,金錢,武器,物品,防具全部數據都根據世界的不同分開了。如果不需要就删去吧


[本贴由作者于 2008-3-15 13:55:25 最后编辑]



转到第二个世界就走一步就出现错误了。可能是第二个世界本来没有数据所以。。。。。
{/ll}
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1035
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

18
发表于 2008-3-16 07:24:02 | 只看该作者
修改版奉上……
  1. class Game_Party
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对像
  4.   #--------------------------------------------------------------------------
  5.   alias ori_ini initialize
  6.   def initialize
  7.     @world_0 = [0,0,{},{},{}]
  8.     @world_id = 1
  9.     ori_ini
  10.   end
  11.   #--------------------------------------------------------------------------
  12.   # ● 增加金钱 (减少)
  13.   #     n : 金额
  14.   #--------------------------------------------------------------------------
  15.   def gain_gold(n)
  16.     @gold = [[@gold + n, 0].max, 9999999].min
  17.     @world_0[0] = [[@world_0[0] + n, 0].max, 9999999].min
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● 增加步数
  21.   #--------------------------------------------------------------------------
  22.   def increase_steps
  23.     @steps = [@steps + 1, 9999999].min
  24.     @world_0[1] = [@world_0[1] + 1, 9999999].min
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 增加物品 (减少)
  28.   #     item_id : 物品 ID
  29.   #     n       : 个数
  30.   #--------------------------------------------------------------------------
  31.   def gain_item(item_id, n)
  32.     # 更新 hash 的个数数据
  33.     if item_id > 0
  34.       @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
  35.       @world_0[2][item_id] = @world_0[2][item_id].nil? ? n : [[@world_0[2][item_id] + n, 0].max, 99].min
  36.     end
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 增加武器 (减少)
  40.   #     weapon_id : 武器 ID
  41.   #     n         : 个数
  42.   #--------------------------------------------------------------------------
  43.   def gain_weapon(weapon_id, n)
  44.     # 更新 hash 的个数数据
  45.     if weapon_id > 0
  46.       @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  47.       @world_0[3][weapon_id] = @world_0[3][weapon_id].nil? ? n : [[@world_0[3][weapon_id] + n, 0].max, 99].min
  48.     end
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 增加防具 (减少)
  52.   #     armor_id : 防具 ID
  53.   #     n        : 个数
  54.   #--------------------------------------------------------------------------
  55.   def gain_armor(armor_id, n)
  56.     # 更新 hash 的个数数据
  57.     if armor_id > 0
  58.       @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
  59.       @world_0[4][armor_id] = @world_0[4][armor_id].nil? ? n : [[@world_0[4][armor_id] + n, 0].max, 99].min
  60.     end
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 世界之轉換 (n)
  64.   #     n        : 世界ID
  65.   #--------------------------------------------------------------------------
  66.   def world_change(n)
  67.     case @world_id
  68.     when 1
  69.       @world_1 = [@gold, @steps, @items, @weapons, @armors]
  70.     when 2
  71.       @world_2 = [@gold, @steps, @items, @weapons, @armors]
  72.     end
  73.     @world_id = n
  74.     case n
  75.     when 0
  76.       record = @world_0
  77.     when 1
  78.       record = @world_1
  79.     when 2
  80.       record = @world_2
  81.     end
  82.     @gold = record[0]
  83.     @steps = record[1]
  84.     @items = record[2]
  85.     @weapons = record[3]
  86.     @armors = record[4]
  87.   end
  88. end
复制代码
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-29 17:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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