Project1

标题: 数据库中同一个可升级的“武器”,如何等级不同? [打印本页]

作者: 失去的记忆    时间: 2012-2-14 13:33
标题: 数据库中同一个可升级的“武器”,如何等级不同?
本帖最后由 失去的记忆 于 2012-3-21 14:55 编辑

举个例子:
数据库中编号为 1 的武器,名字是“武器1”,他可以升级,升级方式是,每使用这把武器攻击敌人一次,就增加经验值1点,
当达到100点的时候,这把武器就升级为编号 2 的“武器2
”,这个时候还是没问题的,我可以实现,不过问题来了:
如果角色拥有2把“武器1”,装备了 1 把,剩下的一把在物品里面,当获得经验值的时候,2把武器都可以获得经验值。。。
也就是说——无法将这2把武器分开,因为id是同一个。。,所以想请问,有没有什么好的方法,实现这种方式??




dsu_plus_rewardpost_czw
作者: 七夕小雨    时间: 2012-2-14 16:49
本帖最后由 七夕小雨 于 2012-2-14 16:50 编辑

给武器对象里面加一个exp的属性不就好了嘛?……
作者: 亿万星辰    时间: 2012-2-14 16:52
简单点还是通过剧情设定让同样的武器整个游戏过程中只能获得一把吧,这样的话对于你的设定就相对容易控制一些了。
作者: 失去的记忆    时间: 2012-2-15 09:50
七夕小雨 发表于 2012-2-14 16:49
给武器对象里面加一个exp的属性不就好了嘛?……

别啊,什么高端.. 我知道啊,就是exp,我明白的啊,你仔细想想呗,这个exp是针对同一个id的武器的,不能针对一个武器的多个数量。。啊
作者: 七夕小雨    时间: 2012-2-15 14:48
本帖最后由 七夕小雨 于 2012-2-15 14:50 编辑

对象的具体概念可以参考面向对象编程-。-

大概意思就是,我和你都是人,但是我们所有的属性都不相同
两把剑也是,虽然是同样的武器,但是实际是两个对象这样,在你新购买一把剑的时候,其实给内存增加了一个剑的对象,而不是单纯的引用数据库,A剑的磨损 和B剑磨损不一样,当然也可以是你说的经验-。-

可以通过F1找到下面的东西咩-。-
  1. module RPG
  2.   class Weapon
  3.     def initialize
  4.       @id = 0
  5.       @name = ""
  6.       @icon_name = ""
  7.       @description = ""
  8.       @animation1_id = 0
  9.       @animation2_id = 0
  10.       @price = 0
  11.       @atk = 0
  12.       @pdef = 0
  13.       @mdef = 0
  14.       @str_plus = 0
  15.       @dex_plus = 0
  16.       @agi_plus = 0
  17.       @int_plus = 0
  18.       @element_set = []
  19.       @plus_state_set = []
  20.       @minus_state_set = []
  21.       @exp = 0 #我是新加的
  22.     end
  23.     attr_accessor :id
  24.     attr_accessor :name
  25.     attr_accessor :icon_name
  26.     attr_accessor :description
  27.     attr_accessor :animation1_id
  28.     attr_accessor :animation2_id
  29.     attr_accessor :price
  30.     attr_accessor :atk
  31.     attr_accessor :pdef
  32.     attr_accessor :mdef
  33.     attr_accessor :str_plus
  34.     attr_accessor :dex_plus
  35.     attr_accessor :agi_plus
  36.     attr_accessor :int_plus
  37.     attr_accessor :element_set
  38.     attr_accessor :plus_state_set
  39.     attr_accessor :minus_state_set
  40.     attr_accessor :exp #我也是新加的
  41.   end
  42. end
复制代码
$data_weapons[@actor.weapon_id] 就可以获得角色装备的武器对象-。-

$data_weapons[@actor.weapon_id].exp就是你装备了武器角色的武器经验属性-。-

@actor= $game_party.actors[角色id]  @actor的来路-。-

写的比较乱而且部没有实践,不知道你懂了没有

$data_weapons[@actor.weapon_id].exp += 1      = =加1点经验……不知道可以不……
作者: 失去的记忆    时间: 2012-3-21 14:54
晕死。。没人来回答??!!
PS:问题还没解决呢,咋就关闭了呢?!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1