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

Project1

 找回密码
 注册会员
搜索
楼主: 禾西
打印 上一主题 下一主题

[原创发布] 我們所處的是個一體兩面的世界!

 关闭 [复制链接]

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

11
发表于 2008-3-16 07:46:46 | 只看该作者
-v-优化一下..
无限个世界........
  1. #==============================================================================
  2. # ■ Game_Party
  3. #------------------------------------------------------------------------------
  4. #  处理同伴的类。包含金钱以及物品的信息。本类的实例
  5. # 请参考 $game_party。
  6. #==============================================================================
  7. class Game_Party
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义别名方法
  10.   #--------------------------------------------------------------------------
  11.   alias game_party_initialize           initialize
  12.   #--------------------------------------------------------------------------
  13.   # ● 世界数量
  14.   #--------------------------------------------------------------------------
  15.   WorldSize = 999
  16.   #--------------------------------------------------------------------------
  17.   # ● 定义实例变量
  18.   #--------------------------------------------------------------------------
  19.   attr_accessor :world_id
  20.   #--------------------------------------------------------------------------
  21.   # ● 初始化对像
  22.   #--------------------------------------------------------------------------
  23.   def initialize(world_size=WorldSize)
  24.     game_party_initialize()
  25.     @gold = Array.new(world_size, 0)
  26.     @steps = Array.new(world_size, 0)
  27.     @items = Array.new(world_size){ Hash.new() }
  28.     @weapons = Array.new(world_size){ Hash.new() }
  29.     @armors = Array.new(world_size){ Hash.new() }
  30.     @world_id = 0
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 获取金钱
  34.   #--------------------------------------------------------------------------
  35.   def gold ; return @gold[@world_id] ; end
  36.   #--------------------------------------------------------------------------
  37.   # ● 获取步数
  38.   #--------------------------------------------------------------------------
  39.   def steps ; return @steps[@world_id] ; end
  40.   #--------------------------------------------------------------------------
  41.   # ● 获取物品
  42.   #--------------------------------------------------------------------------
  43.   def items ; return @items[@world_id] ; end
  44.   #--------------------------------------------------------------------------
  45.   # ● 获取武器
  46.   #--------------------------------------------------------------------------
  47.   def weapons ; return @weapons[@world_id] ; end
  48.   #--------------------------------------------------------------------------
  49.   # ● 获取防具
  50.   #--------------------------------------------------------------------------
  51.   def armors ; return @armors[@world_id] ; end
  52.   #--------------------------------------------------------------------------
  53.   # ● 增加金钱 (减少)
  54.   #     n : 金额
  55.   #--------------------------------------------------------------------------
  56.   def gain_gold(n)
  57.     @gold[@world_id] = [@gold[@world_id] + n, 9999999].min
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 增加步数
  61.   #--------------------------------------------------------------------------
  62.   def increase_steps
  63.     @steps[@world_id] = [@steps[@world_id] + 1, 9999999].min
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 增加物品 (减少)
  67.   #     item_id : 物品 ID
  68.   #     n       : 个数
  69.   #--------------------------------------------------------------------------
  70.   def gain_item(item_id, n)
  71.     # 更新 hash 的个数数据
  72.     if item_id > 0
  73.       item = self.items
  74.       item[item_id] = [[item_number(item_id) + n, 0].max, 99].min
  75.     end
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 增加武器 (减少)
  79.   #     weapon_id : 武器 ID
  80.   #     n         : 个数
  81.   #--------------------------------------------------------------------------
  82.   def gain_weapon(weapon_id, n)
  83.     # 更新 hash 的个数数据
  84.     if weapon_id > 0
  85.       weapon = self.weapons
  86.       weapon[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  87.     end
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● 增加防具 (减少)
  91.   #     armor_id : 防具 ID
  92.   #     n        : 个数
  93.   #--------------------------------------------------------------------------
  94.   def gain_armor(armor_id, n)
  95.     # 更新 hash 的个数数据
  96.     if armor_id > 0
  97.       armor = self.armors
  98.       armor[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
  99.     end
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 获取物品的所持数
  103.   #     item_id : 物品 ID
  104.   #--------------------------------------------------------------------------
  105.   def item_number(item_id)
  106.     # 如果 hash 个数数值不存在就返回 0
  107.     return self.items.include?(item_id) ? self.items[item_id] : 0
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 获取武器所持数
  111.   #     weapon_id : 武器 ID
  112.   #--------------------------------------------------------------------------
  113.   def weapon_number(weapon_id)
  114.     # 如果 hash 个数数值不存在就返回 0
  115.     return self.weapons.include?(weapon_id) ? self.weapons[weapon_id] : 0
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 获取防具所持数
  119.   #     armor_id : 防具 ID
  120.   #--------------------------------------------------------------------------
  121.   def armor_number(armor_id)
  122.     # 如果 hash 个数数值不存在就返回 0
  123.     return self.armors.include?(armor_id) ? self.armors[armor_id] : 0
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 世界之轉換 (n)
  127.   #     n        : 世界ID
  128.   #--------------------------------------------------------------------------
  129.   def world_change(n)
  130.     @world_id = n
  131.   end
  132. end
复制代码
-.-
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风雪夜不归人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2006-3-7
帖子
6721

贵宾

12
发表于 2008-3-17 00:05:54 | 只看该作者
很有创意...实用的话就把...世界无限大化了
有些人,到了七八月份就会诈尸。
宫斗,是女生永远的爱。
冷门,是本人不变的欲。
作弊,是玩家自由的痛。
练级,是橙光割舍的情。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3263
在线时间
3616 小时
注册时间
2006-9-6
帖子
37399

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

13
发表于 2008-3-17 00:11:25 | 只看该作者
其实也可以当作是进入其他附属游戏的档,
然后进入时这边自动存一下,然后读那边的档……
[LINE]1,#dddddd[/LINE]
世界是由无数个平行世界组成的……
虽然目前还觉得不大可能……
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

14
发表于 2008-3-17 00:25:22 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

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

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

16
发表于 2008-3-17 05:53:07 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

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

贵宾

17
 楼主| 发表于 2008-3-17 07:20:04 | 只看该作者
以下引用沉影不器于2008-3-16 16:25:22的发言:

脚本行数越来越少咧...有没说明怎么合并?

把一些重複的,不闔邏輯的語句删除。
以下引用鑫森淼焱垚于2008-3-16 16:34:30的发言:

小柯永远能把脚本想出其他的用法



说起来,如果做双线剧情,也可以用吧
比如高考狂想曲,我一直觉得本来两边还是敌对状态的时候物品通用很别扭--
嗯,同问,如何合并某两个世界呢

召喚「0」世界,所有的世界的物品都會合幷在一齊。

PS。其實可以再度優化的,可是禾西對於Hash表不熟悉,找不到合幷hash表的方法……
如果可以有這樣的語法:

a = {1=>2,3=>5,8=>54}
b = {1=>9,3=>99,10=>1}
c = a?b?????
c = {1=>11,3=>99,8=>54,10=>}

這樣這個腳本的行數大概會再度急跌……
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

18
发表于 2008-3-17 07:39:11 | 只看该作者
没有可以自己写啊`..
class Hash
  def +(hash)
    return {} unless hash.is_a?(Hash)
    new_hash = self.dup
    hash.each do |key, value|
      next unless value.is_a?(Numeric)
      if new_hash[key] != nil
        new_hash[key] += value
      else
        new_hash[key] = value
      end
    end
    return new_hash
  end
end
a = {1=>2, 2=>3}
b = {1=>2, 2=>3, 3=>9}
a += b
p a # {1=>4, 2=>6, 3=>9}
-.-
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

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

贵宾

19
 楼主| 发表于 2008-3-17 08:29:49 | 只看该作者
剛剛寫了……==|||
行數果然急速下跌到47行……
然後腦袋邏輯爆炸……
要是早看到神思的回復就好了,不用自己寫。
(大囧|||)
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-1-3
帖子
1512
20
发表于 2008-3-17 10:37:05 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 13:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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